tomcat - 测试TOMCAT安装的HTTPS性能

标签 tomcat https openssl

全部。

最近想在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 和证书

  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

服务器 - key 和证书

  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

< 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 是否需要任何中间证书?您是否将它们安装在 SSLCACertificateFileSSLCACertificatePath 中?顺便说一句,如果您同时指定两者,我不确定 Tomcat 会做什么。

关于tomcat - 测试TOMCAT安装的HTTPS性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18305617/

相关文章:

php - 如何安全地为 AES CBC 加密生成 IV?

spring-mvc - Tomcat 8 - 在类路径上未检测到 Spring WebApplicationInitializer 类型

java - 部署时出现无法解释的 Tomcat LifeCycleException

linux - 在我的 Linux 主板上监听多个端口或启用 SSL 模块后 HTTP 请求失败

redirect - Nginx 将请求重定向到 HTTPS 域

php - 将我的加密库从 Mcrypt 升级到 OpenSSL

在 Tomcat 上运行项目时 Spring Filter ClassCastException

java - Tomcat 只允许我下载 servlet

node.js - Chrome 54 无法从我的网站获得 HTTPS 响应; Chrome 53、Chromium、Firefox 和 Safari 可以

python - pip 差错误 : 'module' object has no attribute 'Cryptography_HAS_SSL_ST'