s_client 的 SSL 连接问题

s_client 的 SSL 连接问题

我正在尝试从我创建的本地 CA 在两台机器(LAN 上)上配置 SSL,并且在使用 s_client 进行测试时遇到问题,我似乎无法使用我的 google-fu 技能找到有用的信息。我正在尝试熟悉信息安全,这似乎是一个很好的起点。我的情况是

主机1:ubuntu 12.04,tomcat7

主机2:ubuntu 12.04,tomcat7

在两台主机上都配置了带 SSL 的 tomcat,可以从任意一台机器访问 tomcat 主页 @ https://{host}:8443。我使用密钥库和密码配置了连接器,我相信 tomcat 对这些参数很满意,因为之前我遇到了 tomcat 启动错误,无法提取私钥,但这个问题已经解决了。下面是我所做的

// create tomcat server keystore
1. sudo keytool -genkey -alias tomcat7 -keyalg rsa -keystore     /etc/tomcat7/keystore/host1.jks

2. openssl genrsa -aes256 -out host1_key.pem 2048

3. openssl req -new -key host1_key.pem -out host1.csr

4. openssl x509 -req -days 3650 -in host1.csr -CA root_ca.cer -CAkey root_ca_key.pem -    CAcreateserial -setalias host1 -addtrust serverAuth -addtrust clientAuth -extensions client -outform PEM -out host1.cer

// export to keystore
5. openssl pkcs12 -export -in host1.cer -inkey host1_key.pem -out host1.p12 -name "host1"

// import keystore
6. sudo keytool -importkeystore -srckeystore host1.p12 -destkeystore     /etc/tomcat7/keystore/host1.jks -srcstoretype pkcs12
dest passwd: 
src passwd: 
Entry for alias host1 successfully imported
Import command completed: 1 entries successfully imported, 0 entries failed or cancelled

7. view keystore host1.jks
Enter keystore password:  

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 2 entries

tomcat7, Feb 18, 2013, PrivateKeyEntry, 
Certificate fingerprint (MD5): 2A:F1:5A:D1:5B:B1:24:5E:C7:96:3F:71:C8:17:09:E8
host1, Feb 18, 2013, PrivateKeyEntry, 
Certificate fingerprint (MD5): 3F:81:FD:79:78:85:98:32:72:C4:42:8F:D6:2F:DD:09

8. Configure connector in tomcat w/ this keystore.  restart tomcat. Boots w/out error.


Browse to https://host1:8443 from host2 and will get to "It Works!" page

我做的下一步是测试从一台机器到另一台机器的连接

host2: openssl s_client -connect host1:8443
CONNECTED(00000003)
140310470641312:error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error:s23_clnt.c:724:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 226 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---

在 Wireshark 中,我为所有 TLS 协议设置了过滤器(“ssl.record.version == 0x0301”),当我运行上述命令时,我甚至没有看到任何请求发出。我思考这意味着 openssl 无法提取我的证书?我不确定从哪里开始查找,如果我将密钥库密码更改为 tomcat 连接器中的无效密码,我会在 tomcat 启动时看到错误。否则我应该在 wireshark 中看到握手请求。

如果我从其他主机尝试,我会看到同样的结果。

在尝试解决我的问题时,我读到了有关“信任库”的信息,那会是另一个包含其他服务器的 .p12 和我的本地 CA 的密钥库吗?

谢谢,任何指导都会有帮助。

答案1

您可以设置接受哪些密码server.xml,例如

   SSLCipherSuite="ALL:!ADH:!SSLv2:!EXPORT40:!EXP:!LOW" 

不包括 SSLv2。更多信息请访问技术栈

相关内容