我最近从GoDaddy购买了一张数字证书,用于签署adobe air应用程序。 GoDaddy,可能还有一些其他CA,将他们的证书作为SPC文件提供。但是,有关编译和签署空中应用程序的大多数信息都假定您有一个p12文件。我花了一段时间搞清楚如何处理这个问题,并认为与SO社区分享这个过程是件好事。我将很快发布一个答案。
答案 0 :(得分:4)
提出正确方法的关键是理解p12文件是密钥库 - 而不仅仅是证书。密钥库包含密钥和证书。签署adobe air应用程序时,您需要提供密钥库而不仅仅是证书。所以,让我从顶部开始。
第1步:创建密钥库
keytool -genkey -alias codesigncert -keypass <yourkeypwd> -keyalg RSA -keysize 2048 -dname "CN=displayname,O=companyname,C=US,ST=state,L=city" -keystore codesignstore -storepass <yourstorepwd>
第2步:创建证书申请
keytool -certreq -v -alias codesigncert -file mycsr.pem -keystore codesignstore
第3步:使用上一步中创建的CSR从CA购买证书。就我而言,我将证书下载为SPC文件。
第4步:将证书添加到您的密钥库
keytool -import -keystore codesignstore -storepass <yourstorepwd> -alias codesigncert -file mycert.spc
第5步:目前您的密钥库是一个java密钥库(JKS)。将其转换为PKCS12
keytool -importkeystore -srckeystore codesignstore -srcstoretype JKS -deststoretype PKCS12 -destkeystore codesignstore.p12
第6步:在您的应用中签名
adt -package -storetype pkcs12 -keystore codesignstore.p12 -storepass <yourstorepwd> -keypass <yourkeypwd> <name of output file> application.xml <path to root dir>
我认为也可以跳过第5步并使用JKS密钥库执行第6步。但是,我没有证实这是有效的。