gpt4 book ai didi

java - Java 中的 SSL 套接字

转载 作者:太空宇宙 更新时间:2023-11-03 15:06:09 24 4
gpt4 key购买 nike

我想使用 SSL 保护我的应用程序中的通信。我正在使用 org.apache.commons.ssl 和 OpenSSL。我已经像这样创建了 key 和 crt(现在是自签名的):

openssl req -new -x509 -nodes -out szrr.crt -keyout szrr.key
openssl rsa -des3 -in szrr.key -out szrr.key.new
del szrr.key
move szrr.key.new szrr.key

所以我现在有我使用这种方式的 key 和证书:

KeyMaterial km = new KeyMaterial(certChain, key, password);
SSLServer sslServer = new SSLServer();
sslServer.setKeyMaterial(km);
sslServer.addTrustMaterial(TrustMaterial.TRUST_ALL);
sslServerSocket = (SSLServerSocket) sslServer
.createServerSocket(serverPort);

certChain,key 是 crt 和 key 的路径,password 就是密码 :)

现在我还需要做些什么来以类似的方式创建 SSLClient?

最佳答案

检查下面的例子:

SSLClient client = new SSLClient();
char[] pwd = "secret".toCharArray();

client.addTrustMaterial( TrustMaterial.DEFAULT );
client.addTrustMaterial( new TrustMaterial( "/path/to/self-signed.pem" ) );
client.addTrustMaterial( new KeyMaterial( "/path/to/keystore.jks", pwd ) );

client.setCheckHostname( true ); // default is "true"
client.setCheckExpiry( true ); // default is "true"
client.setCheckCRL( true ); // default is "true"

// load a client certificate (max: 1 per SSLClient instance).
client.setKeyMaterial( new KeyMaterial( "/path/to/client.pfx", "secret".toCharArray() ) );
SSLSocket s = (SSLSocket) client.createSocket( "www.mysite.com", 443 );

关于java - Java 中的 SSL 套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8284598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com