ssl 允许通过域与EC2上的Tomcat应用程序建立HTTPS连接

yqhsw0fo  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(56)

我在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应用程序接口?

hmae6n7t

hmae6n7t1#

我的思路是正确的。当我设置CNAME记录时,应该发生的事情是,我会得到一个下载我的证书的链接。问题是,在我的CNAME主机中,我附加了域,即_272731238792139323.example.com,而它应该只是_272731238792139323,因为域是自动附加的。
当我更正这个问题时,我的证书被自动验证,我收到了我的.crt.ca-bundle文件。我将它们复制到我的服务器上,并试图将它们复制到我的密钥库,但我意识到我已经先生成了我的CSR文件,当我应该生成一个JKS文件,* 然后 * 生成一个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访问我的域。
Further reading的一个。

相关问题