全部。
最近,我们想在 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中。实现的协议是“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中插入如下代码。实现的协议是“org.apache.coyote.http11.Http11AprProtocol”。通过 OPENSSL 命令生成以下 KEY & 证书。
CA - 密钥和证书
- 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
服务器 - 密钥和证书
- 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
< 连接器协议="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安装好后,必须启动性能测试程序。
我们找到了很多测试“访问页面并发”的工具,最后,“围攻”很好用。它只是在 Linux 上运行,就像:
围城 -c 500 -r 50 -u " https://XX.XX.XX.XX:8443/SSLpages/Resource_mp.xml "
(1) TOMCAT - JSSE模型 在Linux上运行上述命令后,可以得到正确的结果列表。
交易:25000
hitsAvailability: 100.00 %
secs交易率:677.51
传输/秒吞吐量:2.36 MB/秒
并发: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
为什么 ?并且攻城工具没有将任何错误消息写入LOG。
我应该将 CA 证书插入 OPENSSL 默认文件夹吗?
我应该生成关于信任 CA 证书的信任文件并将其放入某个地方吗?
但是在 JSSE 模型中,我只用 JDK 生成密钥库,可以通过 tomcat 导入。围攻可以成功。
任何帮助或建议将不胜感激!!!