java搭建SSL服务器的问题
一段用java搭建SSL服务器的代码:
pushd %CD%
cd /d %~dp0
REM 1.Create key and certificate:
keytool -genkeypair -v -alias zhaohw7 -dname "cn=kortide.server, ou=Kortide, o=Kortide Cor, c=CHA, l=shanghai" -validity 365 -keypass 1234567 -keystore ..\data\server.keystore -storepass 1234567 -storetype BKS -providername "BC"
REM 2.Check the certifacate:
keytool -list -keystore ..\data\server.keystore -storepass 1234567 -storetype BKS
REM 3.Export it to a file as a certificate(serverCertificate.cer) and give the client to use it:
keytool -export -keystore ..\data\server.keystore -storepass 1234567 -storetype BKS -file ..\data\server.cer -alias zhaohw7
REM (optional)open the certificate(server.cer)
keytool -printcert -file ..\data\server.cer
REM ***.create a Server side policy file:
REM file name: ssl.policy
REM grant {
REM permission java.security.AllPermission;
REM }
REM @echo off
REM if not exist .\ssl.policy (
REM echo.grant {>ssl.policy
REM echo. permission java.security.AllPermission;>>ssl.policy
REM echo }>>ssl.policy
REM )
REM 4.server VM to do:
REM 1) Import the digital certificate to keystore base, and trust it;
REM 2) Use same keystore base as server side.
REM keytool -import -file ..\data\server.cer -alias alias-1 -storepass 1234567 -storetype BKS
REM 5.Compile and Run SSLNetworkServer
javac -d ..\bin\ ..\src\AndroidSSLServer2.java
java -classpath ..\bin\ -Djava.security.policy=..\data\ssl.policy -Djavax.net.ssl.trustStore=..\data\server.keystore AndroidSSLServer2
popd
pause
在执行到最后的语句:
java -classpath ..\bin\ -Djava.security.policy=..\data\ssl.policy -Djavax.net.ssl.trustStore=..\data\server.keystore AndroidSSLServer2
时,出现错误:
java.security.KeyStoreException: BKS not found
at java.security.KeyStore.getInstance(Unknown Source)
at AndroidSSLServer2.startServer(AndroidSSLServer2.java:222)
at AndroidSSLServer2.main(AndroidSSLServer2.java:89)
Caused by: java.security.NoSuchAlgorithmException: BKS KeyStore not available
at sun.security.jca.GetInstance.getInstance(Unknown Source)
at java.security.Security.getImpl(Unknown Source)
... 3 more
Server started at port: 6666
一开始认为是没有加入密码的缘故(因为在前面的语句中server.keystore是受密码1234567保护的),但是加上后“-Djavax.net.ssl.trustStorePassword=1234567”后,依然出现上述错误。
请诸位帮个忙!
pushd %CD%
cd /d %~dp0
REM 1.Create key and certificate:
keytool -genkeypair -v -alias zhaohw7 -dname "cn=kortide.server, ou=Kortide, o=Kortide Cor, c=CHA, l=shanghai" -validity 365 -keypass 1234567 -keystore ..\data\server.keystore -storepass 1234567 -storetype BKS -providername "BC"
REM 2.Check the certifacate:
keytool -list -keystore ..\data\server.keystore -storepass 1234567 -storetype BKS
REM 3.Export it to a file as a certificate(serverCertificate.cer) and give the client to use it:
keytool -export -keystore ..\data\server.keystore -storepass 1234567 -storetype BKS -file ..\data\server.cer -alias zhaohw7
REM (optional)open the certificate(server.cer)
keytool -printcert -file ..\data\server.cer
REM ***.create a Server side policy file:
REM file name: ssl.policy
REM grant {
REM permission java.security.AllPermission;
REM }
REM @echo off
REM if not exist .\ssl.policy (
REM echo.grant {>ssl.policy
REM echo. permission java.security.AllPermission;>>ssl.policy
REM echo }>>ssl.policy
REM )
REM 4.server VM to do:
REM 1) Import the digital certificate to keystore base, and trust it;
REM 2) Use same keystore base as server side.
REM keytool -import -file ..\data\server.cer -alias alias-1 -storepass 1234567 -storetype BKS
REM 5.Compile and Run SSLNetworkServer
javac -d ..\bin\ ..\src\AndroidSSLServer2.java
java -classpath ..\bin\ -Djava.security.policy=..\data\ssl.policy -Djavax.net.ssl.trustStore=..\data\server.keystore AndroidSSLServer2
popd
pause
在执行到最后的语句:
java -classpath ..\bin\ -Djava.security.policy=..\data\ssl.policy -Djavax.net.ssl.trustStore=..\data\server.keystore AndroidSSLServer2
时,出现错误:
java.security.KeyStoreException: BKS not found
at java.security.KeyStore.getInstance(Unknown Source)
at AndroidSSLServer2.startServer(AndroidSSLServer2.java:222)
at AndroidSSLServer2.main(AndroidSSLServer2.java:89)
Caused by: java.security.NoSuchAlgorithmException: BKS KeyStore not available
at sun.security.jca.GetInstance.getInstance(Unknown Source)
at java.security.Security.getImpl(Unknown Source)
... 3 more
Server started at port: 6666
一开始认为是没有加入密码的缘故(因为在前面的语句中server.keystore是受密码1234567保护的),但是加上后“-Djavax.net.ssl.trustStorePassword=1234567”后,依然出现上述错误。
请诸位帮个忙!
...全文
相关推荐
Java实现SSL TLS
通过这个指南,你应该能够开始搭建自己的 SSL/TLS 连接,但记住,错误处理和安全性检查是任何 SSL 实施的关键部分。如果有任何混淆或问题,反馈和讨论是非常重要的。
基于Tomcat搭建SSL双向认证示例【100012422】
本示例将深入探讨如何使用Tomcat搭建SSL(Secure Socket Layer)双向认证环境,以及通过Java原生类库SSLSocket进行编程,以及使用Apache的Httpclient库模拟安全的客户端请求
AndroidHttpClient访问Tomcat双向SSL验证服务器.pdf
**Java版本的客户端/服务器程序**: - 编写Java版本的客户端和服务器程序,以验证SSL的双向认证机制。通过这种方式可以更好地理解SSL握手过程和双向认证的实现细节。
搭建hMailServer邮件服务器[项目代码]
接着,文章转向了如何实现TLS/SSL加密,这是确保邮件传输安全的关键技术。在邮件服务器的搭建过程中,还提到了对IPv6的支持,这符合互联网协议更新的趋势,体现了搭建过程的前瞻性和兼容性。
云服务器搭建web项目教程
这个过程分为多个步骤,包括云服务器购买与配置、环境搭建、Web应用程序部署以及远程访问工具的使用。以下是详细的知识点讲解:1.


Java SE
