允许通过域与 EC2 上的 Tomcat 应用程序进行 HTTPS 连接

问题描述 投票:0回答:1

我正在 Amazon EC2 上运行 Tomcat 应用程序,并且有一个指向 IP 地址的域。我可以通过 HTTP 连接到 IP,但我想通过 HTTPS 连接。

首先,我自签名了一份证书,我的

server.xml
看起来像这样:

<Connector port="80" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="443"
           maxParameterCount="1000"
           />

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true"
           maxParameterCount="1000"
           >
    <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="path/to/cert"
                     type="RSA" />
    </SSLHostConfig>
</Connector>

我能够通过 HTTPS 连接,但不出所料地出现了

MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT
错误。

然后我检查了我的域名提供商,发现他们提供了 SSL(通过 PositiveSSL,如果重要的话)。我购买了一个,并按照文档建议设置了 CNAME 记录:

接下来我该怎么办?我仍然无法通过 HTTPS 连接。我是否以有效的密钥库形式获取证书并将其传递给

Connector
标签?我的域是否通过 HTTPS 处理连接,并且仅通过 HTTP 与我的 Tomcat 应用程序交互?

ssl tomcat https
1个回答
0
投票

我走在正确的道路上。当我设置 CNAME 记录时,应该会出现一个下载证书的链接。问题是,在我的 CNAME 主机中,我附加了域名,即

_272731238792139323.example.com
,而它本应是
_272731238792139323
,因为域名是自动附加的。

当我更正此问题时,我的证书已自动验证,并且我通过电子邮件发送了我的

.crt
.ca-bundle
文件。我将它们复制到我的服务器上,并尝试将它们复制到我的密钥库,但我意识到当我应该生成 JKS 文件时,我首先生成了 CSR 文件,然后然后 生成一个 CSR,并将其提供给证书颁发者.

所以我这样做了,重新颁发了我的证书,再次设置了 CNAME,并提供了一个新的证书可供下载。我将其复制到我的服务器上,我必须将我的

.crt
.ca-bundle
文件转换为
.p7b
,以便它们可以导入到我的密钥库中,我这样做了:

openssl crl2pkcs7 -nocrl -certfile your_file.crt -out your_file.p7b -certfile your_file.ca-bundle

然后我就跑了:

keytool -import -trustcacerts -alias tomcat -file your_file.p7b -keystore yourkeystore.jks

最后我更新了 tomcat/conf 目录中的

server.xml
文件,将 SSL 连接器编辑为如下所示:

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true"
           maxParameterCount="1000"
           >
    <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="conf/certs/yourkeystore.jks"
                     type="RSA" />
    </SSLHostConfig>
</Connector>

我重新启动了 Tomcat,并且能够通过 HTTPS 访问我的域。

进一步阅读

© www.soinside.com 2019 - 2024. All rights reserved.