给自己的blog加上https证书
简介
现在站点https化已经是大势所趋。
站点在https后,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。
在这里选一个免费的https证书。
https://letsencrypt.org/
他的证书有效期只有三个月,三个月后可以续签。
生成证书方便快捷。
操作
下载签名工具
wget https://dl.eff.org/certbot-auto
给执行权限
chmod a+x ./certbot-auto
测试是否成功
./certbot-auto --help
构建生成证书
./certbot-auto certonly --webroot -w <webrootpath> -d <domain>
<webrootpath>
填入自的web项目根目录路径<domain>
填入自己要签名的域名
比如我自己的站点就是./certbot-auto certonly --webroot -w /opt/blog/public -d blog.fengcl.com
提示成功
1 |
|
提示这个,就是成功了
相关配置
生成的证书与密钥放位置
/etc/letsencrypt/live/<domain>/fullchain.pem
/etc/letsencrypt/live/<domain>/privkey.pem
nginx 默认配置
默认web目录为/var/www/html
默认配置文件为/etc/nginx/nginx.conf
nginx 参考配置
root ,ssl_certificate ,ssl_certificate_key 要按实际情况配置
1 |
|
更多
https://mozilla.github.io/server-side-tls/ssl-config-generator/
这里可以生成nginx 的配置文件
原理
在执行certbot-auto
会在web 的root目录创建.well-known
这样一个文件夹,在这个文件夹中会生成一些数据。let’s encrypt 的验证服务器就访问这个地址,看能不能得这数据。
如果成得到,说明这个你有这个域名的拥有权。
验证服务器的useragnet
Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org)
验证服务器的请求的地址
GET /.well-known/acme-challenge/<随机数>
验证https的安全性
参考
https://linuxstory.org/deploy-lets-encrypt-ssl-certificate-with-certbot/
https://ksmx.me/letsencrypt-ssl-https/
https://aotu.io/notes/2016/08/16/nginx-https/index.html