Let's Encrypt的Certbot自动生成证书和自动更新证书

标签:#编程##网站# 时间:2020/06/06 21:34:41 作者:小木

网站启用HTTPS必须制作证书,而证书的制作需要定期更新。这里介绍了Certbot证书自动生成工具和自动更新的方法。并描述了Tomcat如何配置pem证书。

主要步骤如下:

[TOC]

一、下载安装Certbot

wget https://dl.eff.org/certbot-auto
sudo mv certbot-auto /usr/local/bin/certbot-auto
sudo chown root /usr/local/bin/certbot-auto
sudo chmod 0755 /usr/local/bin/certbot-auto

如果使用root账户,那就直接下载安装就可以了。

二、选择Certbot运行方式

有两种运行方式,一个是网站停止运行,绑定80端口,这时候采用如下命令:

sudo /usr/local/bin/certbot-auto certonly --standalone

第二个是网站正在运行,你不想停止网站

sudo /usr/local/bin/certbot-auto certonly --webroot /home/tomcat/webapps/root

注意,/home/tomcat/webapps/root是你的网站根目录所在的路径。

执行上述两条命令之后就会生成证书了,例如本网站的证书生成位置:

/etc/letsencrypt/live/datalearner.com/fullchain.pem

一般来说会有四个文件:

cert.pem -> ../../archive/datalearner.com/cert1.pem
chain.pem -> ../../archive/datalearner.com/chain1.pem
fullchain.pem -> ../../archive/datalearner.com/fullchain1.pem
privkey.pem -> ../../archive/datalearner.com/privkey1.pem

三、配置服务器的证书

生成了证书之后就根据我们自己的服务器来配置了。加入你的服务器软件是tomcat,那么就在tomcat配置文件({tomcat_home}/conf/server.xml)中修改:

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" compression="on" compressionMinSize="50" compressableMimeType="image/gif,image/jpg,text/html,text/xml,text/javascript,application/x-javascript,application/javascript,text/css,text/plain" >
    <SSLHostConfig>
       <Certificate certificateKeyFile="/etc/letsencrypt/live/datalearner.com/privkey.pem"
certificateFile="/etc/letsencrypt/live/datalearner.com/cert.pem"                certificateChainFile="/etc/letsencrypt/live/datalearner.com/chain.pem"
                      type="RSA" />
    </SSLHostConfig>
</Connector>

四、配置证书的自动更新

执行如下语句,在系统中加入定时执行Certbot证书生成更新语句:

echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew -q" | sudo tee -a /etc/crontab > /dev/null
欢迎大家关注DataLearner官方微信,接受最新的AI技术推送