我们希望通过HTTPS连接新的WebService,我们希望设置服务器证书。我试图解释我到目前为止所做的步骤,详细说明:
我们使用以下命令创建了服务器证书:
keytool -storepass * -keystore .my_keystore -keypass * -genkey -alias ALIAS -dname "CN=[FQDN here], OU=ID, O=*, L=*, ST=*, C=*" -keyalg RSA -keysize 2048 -validity 3000
我们为证书
生成了签名请求keytool -storepass * -keystore .my_keystore -certreq -alias ALIAS -file ALIAS.csr
我们将CSR发送到我们公司(拥有自己的CA),并获得了签名证书。
我们验证了证书:
openssl verify -CAfile CA_certificate.pem ALIAS_SIGNED.pem
ALIAS_SIGNED.pem:好的
我们已在密钥库中导入此签名证书。
keytool -importcert -keystore .my_keystore -alias ALIAS_SIGNED -file ALIAS_SIGNED.pem -storepass *
我们正在尝试使用安装在Java的cacerts文件中的公司CA证书从另一台计算机进行连接:
$ openssl s_client -connect [IP]:[port]
CONNECTED(00000003)
depth=0 /C=*/ST=*/L=*/O=*/OU=ID/CN=[FQDN here]
verify error:num=18:self signed certificate
verify return:1
depth=0 /C=*/ST=*/L=*/O=*/OU=ID/CN=[FQDN here]
verify return:1
Certificate chain
0 s:/C=*/ST=*/L=*/O=*/OU=ID/CN=[FQDN here]
i:/C=*/ST=*/L=*/O=*/OU=ID/CN=[FQDN here]
Server certificate
-----BEGIN CERTIFICATE-----
ABcDefGHI...z
-----END CERTIFICATE-----
subject=/C=*/ST=*/L=*/O=*/OU=ID/CN=[FQDN here]
issuer=/C=*/ST=*/L=*/O=*/OU=ID/CN=[FQDN here]
No client certificate CA names sent
SSL handshake has read 1610 bytes and written 279 bytes
New, TLSv1/SSLv3, Cipher is EDH-RSA-DES-CBC3-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : EDH-RSA-DES-CBC3-SHA
Session-ID: 5790...EAB54
Session-ID-ctx:
Master-Key: D07...3E13
Key-Arg : None
Start Time: 1369086263
Timeout : 300 (sec)
Verify return code: 18 (self signed certificate)
closed
但是这个错误就是我得到的。我试图在任何可能的密钥库中安装所有可能的证书(CA,签名和不签名),但openssl客户端不验证它。
请提供任何提示吗?
对不起,如果这里有任何不一致的地方(例如混合keytool和openssl):我们是新手,经过多天的努力,没有达到任何有效的解决方案。
答案 0 :(得分:0)
别名应与FQDN匹配。