我已经按照互联网上的一些指南进行操作,但由于他们从现在开始没有告诉我做任何事情,所以我现在仍然受困。
我有一个带有Tomcat8的Ubuntu 16.04。我已经在Tomcat的webapps中部署了一个应用程序,并且在http上运行良好。然后,我使用letencrypt来获取证书,并在验证了Tomcat的设置之后,给了我4个.pem文件。
链
全链
证书
privkey.pem
现在,我不明白如何在Tomcat / conf / server.xml中链接/使用它们,以便能够访问端口443/8443上的应用程序。当我以非root用户身份安装Tomcat服务时,我已经为443到8443设置了端口转发。我将.pem文件放入Tomcat的conf文件夹中,因此server.xml就在它们旁边。
<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150" SSLEnabled="true" >
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig>
<Certificate certificateKeyFile="conf/privkey.pem"
certificateFile="conf/cert.pem"
certificateChainFile="conf/chain.pem"
type="RSA" />
</SSLHostConfig>
</Connector>
这是我server.xml文件中的当前设置,但不起作用。预设也没有“ fullchain.pem”的位置,我也不知道是否需要更改其中带有“ org.apache”的行,因为我不知道它们实际上在做什么。
提前致谢。我设法在Windows和Ubuntu上进行了自签名证书,但是您总是会得到这种不安全的警告。有人告诉我letencrypt不会发生这种情况。
我将写出如何安装的方法:
下载certbot:
$ wget https://dl.eff.org/certbot-auto<br/>
$ chmod a+x certbot-auto
获取证书:
$ sudo /path/to/certbot-auto certonly --webroot -w /path/to/apache-tomcat-8.5/webapps/ROOT -d example.com
您的证书将下载到以下文件夹中:“ / etc / letsencrypt / live / YOUR_WEBSITE_HERE /”
像这样在server.xml中编辑HTTPS连接器
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true">
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol"/>
<SSLHostConfig>
<Certificate
certificateKeyFile="/etc/letsencrypt/live/YOUR_WEBSITE_HERE/privkey.pem"
certificateFile="/etc/letsencrypt/live/YOUR_WEBSITE_HERE/cert.pem" certificateChainFile="/etc/letsencrypt/live/YOUR_WEBSITE_HERE/chain.pem"
type="RSA" />
</SSLHostConfig>
</Connector>
加密证书通常有效期为90天,因此您需要定期更新证书。将以下行添加到crontab中:
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && ./path/to/certbot-auto renew
我也写了一篇关于它的博客文章,您可以在这里找到:https : //www.gasimof.com/blog/enable-https-for-free-for-tomcat/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句