开始之前
需要拥有一个域名
本文环境是Centos7+nginx,可参考配置
一个网站网页
certbo部分
# 下载
>>>yum install epel-release -y && yum install certbot
# 生成证书,yourdomain表示你的域名,如果还需要添加域名可继续加上-d 参数
>>>cerbot certonly --webroot -d yourdomain -d yourdomain2
# 输入一些信息,如个人邮箱,网站的网页的路径
# 如果成功的话,会有Congratulations的提示。证书一般默认放在/etc/letsencrypt/live 下,一般最后给出的信息提示了路径
# /etc/letsencrypt/live 目录下有一个文件夹名名字是 你的域名,在这里假设为domain/
配置nginx
# 一般nginx的配置文件在/etc/nginx/下,这里简单的使用默认的配置文件进行更改
>>>vim /etc/nginx/nginx.conf
`
# 添加或修改以下内容
server {
listen 80;
# 这里填写你的域名
server_name yourdomain;
# 这里填写你的网站的根目录
root /xxx/xxx;
return 301 https://$server_name$request_url;
# 之后内容按需配置
...
}
# https相关配置
server{
listen 443 ssl;
# 同上配置
server_name yourdomain;
# 注意下面两行的xxx更换为在live文件夹下你的域名文件夹
ssl_certificate /etc/letsencrypt/live/xxx/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xxx/privkey.pem;
# 可照抄
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
keepalive_timeout 70;
# 按需配置
...
}
`
# 保存退出后,重启nginx即开启了https服务
>>>/etc/init.d/nginx restart
写在最后
由于证书有效期为三个月,所以需要每隔三个月进行更新
这里在linux下添加一个定时任务
>>>crontab -e
`
0 0 0 */2 0 root /usr/bin/certbot renew
`
# certbot renew是更新证书命令
# 如果更新失败可以尝试下吗的命令
# 如果报错,可以尝试下面的命令
>>>rpm --query centos-release # centos-release-7-3.1611.el7.centos.x86_64
>>>wget ftp://ftp.muug.mb.ca/mirror/centos/7.3.1611/cloud/x86_64/openstack-mitaka/common/pyOpenSSL-0.15.1-1.el7.noarch.rpm
>>>rpm -Uvh pyOpenSSL-0.15.1-1.el7.noarch.rpm
>>>yum install certbot
certbot renew # OK
关于crontab定时任务可以查看我的另一篇博客
(Linux下执行定时任务(crontab命令))[http://blog.csdn.net/wnma3mz/article/details/77519796]