Jan
20
现在已经是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的使用方法可网上找)
增加以下代码
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更新完成再启动
之前使用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