我想使用.pem格式证书和.prkey密钥,以便在android中创建套接字SSL。不幸的是,我在这篇文章中发现android更喜欢一种不同的格式,BKS格式。如本文所述,我们可以通过Portecle将PEM转换为BKS。
但是我不能在Ubuntu中安装Portege。当我运行时:
java -jar /usr/share/java/portecle.jar
我得到以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/bouncycastle/openssl/PasswordFinder
at java.lang.ClassLoader.defineClass1(Native Method)
...
...
更新
我忘记将bcprov.jar转移到
/usr/share/java
文件夹。
我转移了它。但现在,当我运行时
java -jar /usr/share/java/portecle.jar
,我得到:
no main manifest attribute, in /usr/share/java/portecle.jar
我只是遵循了以下步骤:
- 从以下网址下载.zip:http--sourceforge.net/projects/portercle/
- 分解.zip文件
- 在README.txt中注意到,最低要求是Java SE 6
- 执行了
java -version
,并注意到我的系统PATH中的默认值是java version "1.7.0_65"
- 执行了
java -jar portecle-1.7/portecle.jar
,它只是毫无问题地显示了应用程序
最初必须下载bouncycastle:
http://repo2.maven.org/maven2/org/bouncycastle/bcprov-ext-jdk15on/1.46/bcprov-ext-jdk15on-1.46.jar
在命令提示符中使用此命令:
keytool -importcert -v -trustcacerts -file "oldfilelocationmycertfile.pem" -alias ca -keystore "newfilelocationkeystore.bks" -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath "jarfilelocationbcprov-ext-jdk15on-1.46.jar" -storetype BKS -storepass password