我在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应用程序接口?
1条答案
按热度按时间hmae6n7t1#
我的思路是正确的。当我设置CNAME记录时,应该发生的事情是,我会得到一个下载我的证书的链接。问题是,在我的CNAME主机中,我附加了域,即
_272731238792139323.example.com
,而它应该只是_272731238792139323
,因为域是自动附加的。当我更正这个问题时,我的证书被自动验证,我收到了我的
.crt
和.ca-bundle
文件。我将它们复制到我的服务器上,并试图将它们复制到我的密钥库,但我意识到我已经先生成了我的CSR文件,当我应该生成一个JKS文件,* 然后 * 生成一个CSR,我将提供给证书颁发者。于是,我重新颁发了证书,重新设置了CNAME,并提供了一个新的证书供下载。我将其复制到我的服务器上,我不得不将我的
.crt
和.ca-bundle
文件转换为.p7b
,以便将它们导入到我的密钥库中,我很喜欢这样做:字符串
我便跑过来:
型
最后,我更新了tomcat/conf目录中的
server.xml
文件,将SSL连接器编辑为如下所示:型
我重新启动了Tomcat,并能够通过HTTPS访问我的域。
Further reading的一个。