Jan 20

使用certbot自动生成证书 不指定

bkkkd , 17:44 , 开发应用 , 评论(0) , 引用(0) , 阅读(13343) , Via 本站原创 | |
现在已经是https时代,趋势是使用https替换http.这样会更安全.
之前使用aliyun或者腾讯云也可以申请证书,然后手动配置,但经常会忘记更新.
所以采用certbot让服务器可以自动进行更新.

# 下载certbot的脚本,也有其它安装方法,但我个人试过,这个是最简单的方法.
wget https://dl.eff.org/certbot-auto
chmod a+x ./certbot-auto
mv ./certbot-auto /usr/local/bin/certbot
# 注册信息
certbot  register --agree-tos -m name@yourdomail.com

# 创建证书并验证,但最方便的是使用 standalone方式, 但问题就是原来的web服务需要先关闭.
# 其实一共有三个方式
# --standalone   使用脚本的服务器进行验证
# --webroot 基于现有网站根目录进行验证
# --manual   手动验证,(我没有试过这个方式)

certbot certonly --standalone -d atim.cn -d www.atim.cn


验证完成后,会显示证书的路径.
在/etc/letsencrypt/live/ 目录下生成对应域名的目录,证书都在目录里面.
然后修改nginx站点配置(apache的配置自己去找)

server {
    listen       443;
    server_name  atim.cn *.atim.cn;
    # SSL
    ssl on;
    ssl_certificate /etc/letsencrypt/live/atim.cn/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/atim.cn/privkey.pem;
    location ~ .* {
        proxy_pass   http://webserver;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

主要是就增加这三句

    ssl on;
    ssl_certificate /etc/letsencrypt/live/atim.cn/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/atim.cn/privkey.pem;

重启服务器就好了.
最后就是编写定时任务自动更新证书了(vim的使用方法可网上找)
crontab -e

增加以下代码

38 3 20 */2 * /usr/local/bin/certbot renew --pre-hook "systemctl stop nginx.service" --post-hook "systemctl start nginx.service"

其中 --pre-hook 和-- post-hook分别是前置命令和后置命令,详细可以通过查看.由于使用了certbot内置服务器进行验证,所以需要停止nginx更新完成再启动
certbot --help renew

发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]