我正试图将bouncycastle添加到我的类路径中,我能找到的唯一说明是针对Windows的。我需要它,这样我就可以连接我的Android客户端到我的服务器。有人遇到过同样的问题吗?
a6b3iqyw1#
用户2829409问题答案:
其实很简单只需将提供程序jar添加到System/Library/Java/Extensions中,操作系统会负责将其添加到类路径中。然后运行如下代码:
keytool -importcert -v -trustcacerts -file "YOUR_CERT.crt" -alias imeto_alias -keystore "NEW_BKS_SERVER_CERT_NAME.bks" -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath "bcprov-jdk16-146.jar" -storetype BKS
您应该会看到一个提示,要求输入密码。输入密码,然后将“NEW_BKS_SERVER_CERT_NAME.bks”添加到eclipse中的res/raw文件夹中。我希望这对外面的人有帮助。
g6ll5ycj2#
我想我会写这个作为一个答案,即使OP在编辑中给出了解决方案。额外的解释可能会有所帮助,但更重要的是,在这样做之后,我遇到了Gradle或Android Studio的一个奇怪问题。所以,这里的一步一步是:所提到的“供应商JAR”是指Bouncy Castle JAR。我用的是从maven.org/maven2/org/bouncycastle/bcprov-ext-jdk15on/1.46/下载的。按照指示将其放入/System/Library/Java/Extensions。使用OP提供的行,但一定要更改-providerpath "bcprov-jdk16-146.jar"以匹配您实际拥有的JAR。所以这里我们有:
/System/Library/Java/Extensions
-providerpath "bcprov-jdk16-146.jar"
-providerpath "bcprov-ext-jdk15on-1.46.jar"
现在你有了你的信托商店。在Android Studio中尝试构建时,我得到了以下错误:
Error:Execution failed for task ':app:packageDebug'. > class org.bouncycastle.asn1.ASN1Primitive overrides final method equals.(Ljava/lang/Object;)Z
显然,问题是类路径上现在有两个Bouncy Castle JAR。所以删除你添加到/Extensions的那个,一切都会好起来的。要创建一个带有自签名证书和后续BKS信任库的密钥库,我使用以下命令:
创建密钥库:
keytool -genkey -keyalg RSA -alias selfsigned -keystore server.jks -storepass password -validity 360 -keysize 2048
创建信任库:
keytool -export -alias selfsigned -keystore server.jks -file server.cer -storepass password keytool -importcert -v -trustcacerts -file "server.cer" -alias server_truststore \ -keystore "server_truststore.bks" -provider org.bouncycastle.jce.provider.BouncyCastleProvider \ -providerpath "bcprov-ext-jdk15on-1.46.jar" -storetype BKS`
2条答案
按热度按时间a6b3iqyw1#
用户2829409问题答案:
其实很简单只需将提供程序jar添加到System/Library/Java/Extensions中,操作系统会负责将其添加到类路径中。然后运行如下代码:
您应该会看到一个提示,要求输入密码。输入密码,然后将“NEW_BKS_SERVER_CERT_NAME.bks”添加到eclipse中的res/raw文件夹中。
我希望这对外面的人有帮助。
g6ll5ycj2#
我想我会写这个作为一个答案,即使OP在编辑中给出了解决方案。额外的解释可能会有所帮助,但更重要的是,在这样做之后,我遇到了Gradle或Android Studio的一个奇怪问题。所以,这里的一步一步是:
所提到的“供应商JAR”是指Bouncy Castle JAR。我用的是从maven.org/maven2/org/bouncycastle/bcprov-ext-jdk15on/1.46/下载的。按照指示将其放入
/System/Library/Java/Extensions
。使用OP提供的行,但一定要更改
-providerpath "bcprov-jdk16-146.jar"
以匹配您实际拥有的JAR。所以这里我们有:现在你有了你的信托商店。在Android Studio中尝试构建时,我得到了以下错误:
显然,问题是类路径上现在有两个Bouncy Castle JAR。所以删除你添加到/Extensions的那个,一切都会好起来的。
要创建一个带有自签名证书和后续BKS信任库的密钥库,我使用以下命令:
创建密钥库:
创建信任库: