首页 > 解决方案 > 想用Tomcat配置HTTPS;没有注册域名

问题描述

我正在尝试让 HTTPS 与 Tomcat 一起使用。我在 CentOS 7.7.1098 上使用 Tomcat 8.5.55。我没有注册域来发送 CSR 到......而只是想在我的本地主机上运行它。

我已经阅读了有关该主题的多个来源,他们说要创建自己的 CA。我是这样做的:

openssl genrsa -des3 -out myCA.key 2048

openssl req -x509 -new -nodes -key myCA.key -sha256 -days 1825 -out myCA.pem

然后将其加载到服务器上:

cp myCA.pem /etc/pki/ca-trust/source/anchors/

update-ca-trust

然后将其导入密钥库:

keytool -genkey -alias tomcat -keyalg RSA

keytool -importcert -alias tomcat -keystore ~/.keystore -file ~/tempcert/myCA.pem

下面是 server.xml 的样子:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true">
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="~/.keystore"
                     type="RSA" />
    </SSLHostConfig>
</Connector>

但是当我尝试连接到https://localhost:8443时,它只是超时(例如,在 Firefox 中,“连接已超时。本地主机上的服务器响应时间过长。)

日志目录中也没有任何错误。

我哪里出错了?

标签: httpsopensslcertificatecentos7tomcat8

解决方案


server.xml 文件应包含密钥库密码。请您更改 server.xml 如下:-

<Connector SSLEnabled="true" acceptCount="100" clientAuth="false"
    disableUploadTimeout="true" enableLookups="false" maxThreads="25"
    port="8443" keystoreFile="yourKeystorefilePath" keystorePass="yourKeystorepassword"
    protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https"
    secure="true" sslProtocol="TLS" />

您的密钥库文件应使用相同的密码导入密钥库。

仍然有任何问题,请从 tomcat 位置向我发送以下 unix 命令和 catalina.out 日志文件的输出以进行更多调试。

  1. ps -ef | grep '8443'
  2. curl -iv --cert=file https://localhost:8443

再检查一次,请通过此链接( https://keystore-explorer.org/ )在您的机器中安装此密钥库资源管理器工具并在其中导入密钥库文件,一旦导入,它将要求输入密码(输入正确的密码)。如果它将打开意味着密钥库文件和密码正确。

希望它能解决您的问题。


推荐阅读