一、环境:
1、centos 7
2、nginx
安装前保证自己的nginx处于开启的状态并且可通过域名访问80端口即可。
我nginx一般是用作反向代理的,所以在生成证书前不需要单独配置新的域名服务,使用安装后默认的配置服务即可。
二、证书使用:Let’s Encrypt
安装证书管理客户端:
1、wget https://dl.eff.org/certbot-auto
修改程序执行权限:
2、chmod a+x ./certbot-auto
生成证书,默认证书放置在 /etc/letsencrypt/live/ 下面:
3、./certbot-auto certonly --webroot -w nginx <默认 root 目录> -d <你的域名> --agree-tos
做好上面的步骤,并且证书生成了,就可以给新的域名配置nginx了,下面就直接贴上我的配置:
server {
listen 443 ssl;
server_name xxx.xxx.xxx;
root <nginx root 目录>;
index index.html index.htm;
access_log /var/log/nginx/xxxxxx.log;
error_log /var/log/nginx/xxxxxx.log;
# 证书文件
ssl_certificate /etc/letsencrypt/live/xxx.xxx.xxx/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xxx.xxx.xxx/privkey.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
}
主要配置就是已上这些,当然,每个人还可以根据具体需求配置一些静态文件的路由,或者反向代理等。
配置结束后,虽然https可以正常访问了,但是,证书是有有效时间的,一般是3个月,所以,在证书有效期到达之前,还要手动更新一下,下面两条命令功能一致:
certbot renew --dry-run 这条命令会输出证书的更新信息
certbot renew --quiet 这条命令不会输出证书的更新信息
这种方法有点儿麻烦,一旦时效,浏览器访问网站就会报警,所以,可以给命令加上定时任务。