① 如何将AndroidAir用pkcs12格式p12证书转换为用jks格式keystore证书
先把你的CA证书拷贝到你的SD卡里面2.进入手机的“设置”->“位置和安全”,最下面有个“从SD卡安装”,就是安装证书的。点击后按提示操作就OK了。
② 如何使用.net读取PKCS12格式数字证书
要读取pkcs12格式的证书,我们需要调用API,在WIN32类中,我们声明这些API的引用:
1using System;
2using System.Runtime.InteropServices;
3
4namespace X509Cert
5{
6
7 public class WIN32
8 {
9 public const uint CRYPT_USER_KEYSET = 0x00001000;
10 public const uint CERT_KEY_PROV_INFO_PROP_ID = 0x00000002;
11 public const uint CRYPT_DELETEKEYSET = 0x00000010;
12
13 [DllImport("crypt32.dll", SetLastError=true)]
14 public static extern IntPtr PFXImportCertStore(ref CRYPT_DATA_BLOB pPfx,[MarshalAs(UnmanagedType.LPWStr)] String szPassword,uint dwFlags);
15
16 [DllImport("CRYPT32.DLL", EntryPoint="CertEnumCertificatesInStore", CharSet=CharSet.Auto, SetLastError=true)]
17 public static extern IntPtr CertEnumCertificatesInStore( IntPtr storeProvider, IntPtr prevCertContext);
18
19 [DllImport("CRYPT32.DLL",CharSet=CharSet.Auto, SetLastError=true)]
20 public static extern bool (IntPtr pCertContext,uint dwPropId,IntPtr pvData,ref uint pcbData);
21
22 [DllImport("advapi32.dll",EntryPoint="CryptAcquireContext",CharSet=CharSet.Auto, SetLastError=true)]
23 public static extern bool CryptAcquireContext(ref IntPtr phProv,string szContainer,string szProvider,uint dwProvType,uint dwFlags);
24
25 [StructLayout(LayoutKind.Sequential)]
26 public struct CRYPT_DATA_BLOB {
27 public int cbData;
28 public IntPtr pbData;
29 }
30
31 [StructLayout(LayoutKind.Sequential)]
32 public struct CRYPT_KEY_PROV_INFO {
33
34 [MarshalAs(UnmanagedType.LPWStr)]
35 public String ContainerName;
36
37 [MarshalAs(UnmanagedType.LPWStr)]
38 public String ProvName;
39
40 public uint ProvType;
41
42 public uint Flags;
43
44 public uint ProvParam;
45
46 public IntPtr rgProvParam;
47
48 public uint KeySpec;
49
50 }
51
52 public WIN32()
53 {
54 //
55 // TODO: 在此处添加构造函数逻辑
56 //
57 }
58 }
59}
60
然后在Cert类中写一个Read方法读取其中的证书。注意:pfx文件有可能包含几个证书
1using System;
2using System.IO;
3using System.Runtime.InteropServices;
4using System.Security.Cryptography.X509Certificates;
5
6namespace X509Cert
7{
8 /// <summary>
9 /// Cert 的摘要说明。
10 /// </summary>
11 public class Cert
12 {
13 public Cert()
14 {
15 //
16 // TODO: 在此处添加构造函数逻辑
17 //
18 }
19 public static System.Security.Cryptography.X509Certificates.X509Certificate[] Read(string filename,string password) {
20
21 //打开证书文件,并读到一个字节数组中。
22 FileStream stream = new FileStream(filename,FileMode.Open);
23 byte[] buffer = new byte[stream.Length];
24 stream.Read(buffer,0,buffer.Length);
25 stream.Close();
26
27 //声明并实例化WIN32.CRYPT_DATA_BLOB 将读取到的字节数组拷贝到它的pbData属性中。将字节数组长度赋给cbData属性
28 WIN32.CRYPT_DATA_BLOB cryptdata = new WIN32.CRYPT_DATA_BLOB();
29 cryptdata.cbData = buffer.Length;
30 cryptdata.pbData = Marshal.AllocHGlobal(cryptdata.cbData);
31 Marshal.Copy(buffer,0,cryptdata.pbData,buffer.Length);
32 IntPtr hMemStore = WIN32.PFXImportCertStore(ref cryptdata,"1234",WIN32.CRYPT_USER_KEYSET);
33 Marshal.FreeHGlobal(cryptdata.pbData);
34
35 uint provinfosize = 0;
36 WIN32.CRYPT_KEY_PROV_INFO certinfo = new WIN32.CRYPT_KEY_PROV_INFO();
37
38 System.Collections.ArrayList certs = new System.Collections.ArrayList();
39
40 IntPtr certHandle = IntPtr.Zero;
41 while((certHandle = WIN32.CertEnumCertificatesInStore(hMemStore,certHandle)) != IntPtr.Zero) {
42
43 if(WIN32.(certHandle,WIN32.CERT_KEY_PROV_INFO_PROP_ID,IntPtr.Zero,ref provinfosize)){
44
45 IntPtr info = Marshal.AllocHGlobal((int)provinfosize);
46
47 if(WIN32.(certHandle,WIN32.CERT_KEY_PROV_INFO_PROP_ID,info,ref provinfosize)) {
48 certinfo = (WIN32.CRYPT_KEY_PROV_INFO)Marshal.PtrToStructure(info,typeof(WIN32.CRYPT_KEY_PROV_INFO));
49
50 certs.Add(new X509Certificate(certHandle));
51 }
52 Marshal.FreeHGlobal(info);
53
54 }
55 }
56
57 Marshal.FreeHGlobal(hMemStore);
58
59 IntPtr hCryptProv = IntPtr.Zero;
60 if(!WIN32.CryptAcquireContext(ref hCryptProv,certinfo.ContainerName,certinfo.ProvName,certinfo.ProvType,WIN32.CRYPT_DELETEKEYSET))
61 throw new Exception("释放内存错误");
62 return (X509Certificate[])certs.ToArray(typeof(X509Certificate));
63
64 }
65 }
66}
③ linux 怎么安装p12证书
你说的是部署nginx的https(443)吧 安装证书过程可以参考下面的过程 #cd /usr/local/nginx/conf #openssl genrsa -des3 -out server.key 1024 #openssl req -new -key server.key -out server.csr #openssl rsa -in server.key -out server_nopwd...
④ 微信公众号里的微信支付apiclient_key.pem是什么
你好,这个是支付密钥,需要对接得。
API安全证书设置1)开发所需的接口API证书、密钥,请登录微信支付商户平台,点击【账户中心】->【账户设置】->【API安全】->【下载证书】中,下载及设置;2)开通帐号和更换API证书时,可以此页下载和更改证书,该证书用来标识和界定您的身份;部分安全性要求高的API需要使用该证书来确认您的调用身份,防止因盗用给您带来的损失。
API证书信息附件共三份(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需要携带的证书文件。证书属于敏感信息,请妥善保管不要泄漏和被他人复制。不同开发语言下的证书格式不同,点“下载证书中”说明指引。
证书附件
描述
使用场景
备注
证书pkcs12格式(apiclient_cert.p12)
包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给你用来标识和界定你的身份
部分安全性要求较高的API需要使用该证书来确认你的调用身份
windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为你的商户ID(如:10010000)
证书pem格式(apiclient_cert.pem))
从apiclient_cert.p12中导出证书部分文件,为pem格式,请妥善保管不要泄漏和被他人复制
部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便你的使用,已为你直接提供
你也可以使用openssl命令来自己导出:openssl pkcs12-clcerts-nokeys-in apiclient_cert.p12-out apiclient_cert.pem
证书密钥pem格式(apiclient_key.pem))
从apiclient_cert.p12中导出密钥部分的文件,为pem格式
部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便你的使用,已为你直接提供
你也可以使用openssl命令来自己导出:openssl pkcs12-clcerts-nokeys-in apiclient_cert.p12-out apiclient_key.pem
备注: 由于绝大部分操作系统已内置了微信支付服务器证书的根CA证书,2018年3月6日后,不再提供CA证书文件(rootca.pem)下载。
更改API证书1)如果您的证书泄漏,您可以通过“更改证书”来修改API证书, 如果更改证书会影响线上交易,若非必要,建议不要随意修改API证书;
2)确认更改证书需要验证手机短信和登录密码。验证通过后,新的证书会直接生成,您可以直接下载新的证书到电脑。
⑤ mac下 空密码P12证书如何安装
要使用 Flash CS5 开发 iPhone 应用程序,则必须使用 P12 证书文件。基于从 Apple 收到的 Apple iPhone 开发人员证书文件生成此证书。
将从 Apple 收到的开发人员证书文件转换成 PEM 证书文件。从 OpenSSL bin 目录运行以下命令行语句:
openssl x509 -in developer_identity.cer -inform DER -out developer_identity.pem -outform PEM
如果您使用的是 Mac 计算机上钥匙串中的私钥,则将其转换成 PEM 密钥:
openssl pkcs12 -nocerts -in mykey.p12 -out mykey.pem
现在,您可以基于密钥和 PEM 版本的 iPhone 开发人员证书生成有效的 P12 文件:
openssl pkcs12 -export -inkey mykey.key -in developer_identity.pem -out iphone_dev.p12
如果您使用的是 Mac OS 钥匙串中的密钥,则使用上一步骤中生成的 PEM 版本。否则,请使用以前生成的 OpenSSL 密钥(位于 Windows 上)。
⑥ 如何把pem证书转化为p12证书
我使用JavaPNS 进行ios推送时,需要使用p12格式的证书,可是同事提供给我的证书格式是版pem的。于是我面临一个问题:如权何把pem转化为p12?
我操作系统是win7.
pem转化为p12的步骤如下:
首先要安装openssl:
下载后的文件是:Win32OpenSSL_Light-1_0_1e.exe
安装完成之后,关闭所有的命令行窗口(若有打开的),然后运行如下命令:
openssl pkcs12 -export -in apns_dev.pem -out paypal.pkcs12
apns_dev.pem 是输入,paypal.pkcs12是输出,paypal.pkcs12就是JavaPNS 需要的证书
附件是doc文件
⑦ X509怎么压缩成pkcs12能不能把详细的告诉一下,谢谢~~
不是压缩。。。。
需要编码+加密私钥