全部。
最近想在Linux平台上搭建一些HTTPS服务,提供一些安全内容。
首先,我们在TOMCAT官网找到了指南Apache Tomcat 7 (7.0.42) - SSL Configuration HOW-TO.htm,安装HTTPS服务有两种方案。 ( http://www.cjsdn.net/Doc/Tomcat7/ssl-howto.html )
(1) JSSE:使用JDK中的keytool生成keystore和证书。在TOMCAT 的CONF 文件夹下的server.xml 文件中插入以下代码。实现的协议(protocol)是“org.apache.coyote.http11.Http11NioProtocol”。
< Connector SSLEnabled="true" acceptCount="800" clientAuth="false"
disableUploadTimeout="true" enableLookups="false" maxThreads="400"
port="8443" keystoreFile="/home/jsse/sslserverkeys" keystorePass="123456"
protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https"
secure="true" sslProtocol="TLS" />
启动TOMCAT服务,一切程序OK。人们可以使用浏览器打开“https://XX.XX.XX.XX:8443/SSLpages/Resource_mp.xml”。
(2)APR:安装OPENSSL,安装APR包,安装TOMDAT-NATIVE,然后在server.xml中插入如下代码。实现的协议(protocol)是“org.apache.coyote.http11.Http11AprProtocol”。通过 OPENSSL 命令生成以下 KEY 和证书。
CA - key 和证书
- openssl genrsa -out ca-key.pem 1024
- openssl req -new -out ca-req.csr -key ca-key.pem
- openssl x509 -req -in ca-req.csr -out ca-cert.pem -signkey ca-key.pem -days 3650
- openssl pkcs12 -export -clcerts -in ca-cert.pem -inkey ca-key.pem -out ca.p12
服务器 - key 和证书
- openssl genrsa -out server-key.pem 1024
- openssl req -new -out server-req.csr -key server-key.pem (10.180.26.156)
- openssl x509 -req -in server-req.csr -out server-cert.pem -signkey server-key.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 3650
- openssl pkcs12 -export -clcerts -in server-cert.pem -inkey server-key.pem -out server.p12
< Connector protocol="org.apache.coyote.http11.Http11AprProtocol" SSLEnabled="true" acceptCount="800" maxThreads="400" enableLookups="false" disableUploadTimeout="true" port="8443"
SSLProtocol="TLSv1" SSLCipherSuite="ALL" scheme="https" secure="true" SSLCertificateFile="/home/apr/ssl/server-cert.pem" SSLCertificateKeyFile="/home/apr/ssl/server-key.pem" SSLCACertificateFile="/home/apr/ssl/ca-cert.pem" SSLCACertificatePath="/home/apr/ssl" SSLPassword="123456" />
启动TOMCAT服务,所有程序OK(包括OPENSSL组件)。人们可以使用浏览器打开“https://XX.XX.XX.XX:8443/SSLpages/Resource_mp.xml”。
其次,当HTTPS安装完成后,就要开始进行性能测试了。
我们找到了很多测试'访问页面并发'的工具,最后,'Siege'非常好用。它就像在 Linux 上运行一样:
围城 -c 500 -r 50 -u "https://XX.XX.XX.XX:8443/SSLpages/Resource_mp.xml "
(一)TOMCAT——JSSE模型 在Linux上运行上述命令后,可以得到正确的结果列表。
交易: 25000
点击率: 100.00 %
秒交易率: 677.51
trans/sec 吞吐量: 2.36 MB/sec
并发: 16.90
成功交易: 25000
失败的交易: 0
(2) TOMCAT——APR模型
围城 -c 50 -r 10 -u "https://XX.XX.XX.XX:8443/SSLpages/Resource_mp.xml "
在Linux上运行上述命令后,无法得到正确的结果列表。
成功交易: 0
失败的交易: 500
为什么?并且攻城工具没有将任何ERROR信息写入LOG。
我应该将 CA 证书插入 OPENSSL 默认文件夹吗?
我是否应该生成关于信任 CA 证书的信任文件并将其放入某个地方?
但是在JSSE模型中,我只通过JDK生成keystore,可以被tomcat导入。 Siege 可以成功运行。
任何帮助或建议将不胜感激!!!
最佳答案
听起来您的证书和/或 CA 证书文件没有客户端在您的服务器和公认的 CA 之间建立信任链所需的 CA 证书(或链证书)。
您的 CA 是否需要任何中间证书?您是否将它们安装在 SSLCACertificateFile
或 SSLCACertificatePath
中?顺便说一句,如果您同时指定两者,我不确定 Tomcat 会做什么。
关于tomcat - 测试TOMCAT安装的HTTPS性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18305617/