我已经在互联网上遵循了一些指南,但我现在卡住了,因为从现在开始,他们告诉我要做的事情都不管用。
我用的是带Tomcat8的Ubuntu16.04。我已经在Tomcat的webapps中部署了一个应用程序,它在http上运行得很好。然后我使用letsencrypt获得了一个证书,在验证了我的Tomcat的设置之后,它给了我4个.pem文件。
现在,我不知道如何在Tomcat/conf/server.xml中链接/使用它们,以便能够在端口443/8443上访问应用程序。我已经为443到8443添加了一个端口转发,因为我使用非root用户安装了Tomcat-service。我把.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上做了一个自签名证书,但是你总是得到这个不安全的警告。有人告诉我,letsencrypt不会发生这种情况。
发布于 2018-07-16 20:54:45
我将写下我是如何安装它的:
下载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/
https://stackoverflow.com/questions/49431642
复制相似问题