第零步,web服务器要安装SSL模块
以下操作固定在一个文件夹内
第一步,安装专用软件Certbot
下载
$ wget https://dl.eff.org/certbot-auto
我的服务器迷之无法连接,也可以先本地下载再传到服务器上
修改权限
$ chmod a+x certbot-auto
安装
$ ./certbot-auto
第二步,验证域名并申请证书
官方有几种方法,这里直接用最简单的方法
申请证书过程,要确保dns能够解析到你的服务器
nginx
如果你的nginx服务器正在运行的话,先停止服务,因为验证的时候会开80端口
$ service nginx stop
多个域名加 -d 参数
$ ./certbot-auto certonly --standalone -d example.com -d www.example.com
根据屏幕上的信息确认是否成功,如果成功了证书和私匙在以下路径
/etc/letsencrypt/live/example.com/cert.pem
/etc/letsencrypt/live/example.com/privkey.pem
apache
apache的话可以自动申请并自动配置
$ ./certbot-auto --apache
当然也可也只申请证书不自动配置
$ ./certbot-auto --apache certonly
第三步,自动更新证书
证书有效期是90天所以有重新生成证书的命令
这个命令是判断可不可以一键重新生成证书,不会进行真的操作
$ ./certbot-auto renew --dry-run
根据提示可以一键重新生成证书的话就可以用以下命令重新生成证书
$ ./certbot-auto renew --quiet
如果希望自动更新的话可以将这条命令加到计划任务,当然加的时候路径写好绝对路径
如果是nginx的话应该在脚本首尾加上两句,因为更新的方法和申请时一样需要占用web服务的端口
service nginx stop
./path/to/certbot-auto renew --quiet
service nginx start
第四步,配置web服务器
apache上面可以自动配置,nginx的最优方法是直接把证书申请时存的路径写到配置文件中
当然配置的时候证书路径写的是fullchain.pem这个文件,否则会在部分设备(安卓浏览器等)上出现因证书链不全导致的无法认证问题
启动nginx服务
$ service nginx start
3 赞
学长你证书过期了