1. Let's Encrypt
官方推荐 Let's Encrypt 用 certbot 实现
1.1. ubuntu nginx 配置 Let's Encrypt
certbot 官网 选择 nginx
ubuntu
版本,打开 Nginx on Ubuntu (other)
1.1.1. 安装依赖
$ wget https://dl.eff.org/certbot-auto
$ chmod a+x certbot-auto
$ ./certbot-auto
1.1.2. 模式选择
- standalone 模式
这个模式虽然可以配置好服务器,但是以后Renew的时候,需要让服务停止一下,再启动
- webroot 模式
这个模式需要指定服务根目录
--webroot-path
并在该目录下生成.well-known
文件夹
- nginx 模式
这个模式配置最简单,直接
./certbot-auto --nginx
全部搞定,不过这是alpha
版,使用前最好先备份nginx
配置
1.1.3. nginx 模式
./certbot-auto --nginx
- 配置路径
/var/lib/letsencrypt
和/etc/letsencrypt/
1.1.4. webroot 模式
创建证书
$ ./certbot-auto certonly
nginx启用443端口
新建一个443端口的server配置:
server {
listen 443 ssl;
listen [::]:443 ssl ipv6only=on;
ssl_certificate /etc/letsencrypt/live/your.domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your.domain.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/your.domain.com/chain.pem;
// ... other settings ...
}
nginx -s reload
现在就可以用 https 方式访问了
1.1.5. 自动更新证书
let's encrypt 证书有效期为 90 天,所以要定期更新,crontab -e
中添加
./certbot-auto renew