首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >让我们来加密/SSL Tomcat8 Ubuntu16.04

让我们来加密/SSL Tomcat8 Ubuntu16.04
EN

Stack Overflow用户
提问于 2018-03-22 22:48:05
回答 1查看 3K关注 0票数 3

我已经在互联网上遵循了一些指南,但我现在卡住了,因为从现在开始,他们告诉我要做的事情都不管用。

我用的是带Tomcat8的Ubuntu16.04。我已经在Tomcat的webapps中部署了一个应用程序,它在http上运行得很好。然后我使用letsencrypt获得了一个证书,在验证了我的Tomcat的设置之后,它给了我4个.pem文件。

  • chain.pem
  • fullchain.pem
  • cert.pem
  • privkey.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不会发生这种情况。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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/

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49431642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档