-1

全部。

最近,我们想在 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 - 密钥和证书

  1. openssl genrsa -out ca-key.pem 1024
  2. openssl req -new -out ca-req.csr -key ca-key.pem
  3. openssl x509 -req -in ca-req.csr -out ca-cert.pem -signkey ca-key.pem -days 3650
  4. openssl pkcs12 -export -clcerts -in ca-cert.pem -inkey ca-key.pem -out ca.p12

服务器 - 密钥和证书

  1. openssl genrsa -out server-key.pem 1024
  2. openssl req -new -out server-req.csr -key server-key.pem (10.180.26.156)
  3. 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
  4. 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 导入。围攻可以成功。

任何帮助或建议将不胜感激!!!

4

1 回答 1

0

听起来您的证书和/或 CA 证书文件没有客户端在您的服务器和公认的 CA 之间建立信任链所需的 CA 证书(或链证书)。

您的 CA 是否需要任何中间证书?您是否已将它们安装在您的SSLCACertificateFileor中SSLCACertificatePath?如果您同时指定两者,我不确定Tomcat会做什么,顺便说一句。

于 2013-09-07T19:17:08.307 回答