Certbot 是一个基于 Let's Encrypt
的自动化申请证书的工具,支持的系统和web server也不少,详见 Certbot 官网html
Certbot 有一些 dns 插件能够自动化的不须要手动设置 dns 等方式来验证域名的所属,可是基本是一些国外的大型 DNS 提供商的,针对国内的话经过DNS验证的话仍是须要手动验证DNS记录,这里主要介绍手动验证,经过DNS插件自动验证请参考 certbot 官网python
安装 Certbot,具体步骤参考官网nginx
$ sudo apt-get update $ sudo apt-get install software-properties-common $ sudo add-apt-repository universe $ sudo add-apt-repository ppa:certbot/certbot $ sudo apt-get update $ sudo apt-get install certbot python-certbot-nginx
申请 HTTPS 证书web
安装好 certbot 以后,在命令行中执行如下命令:shell
sudo certbot certonly -d "*.weihanli.xyz" -d weihanli.xyz --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
执行完命令以后会提示须要记录 IP 信息,须要赞成否则不能继续申请windows
设置 DNS TXT 记录api
按照提示,在本身的域名服务商那里添加或者修改 _ache-challenge 的 txt 记录,修改以后须要验证是否解析成功,验证方式详见后面,验证解析成功以后输入 Enter 键继续bash
证书申请成功服务器
若是出现这样的提示就说明证书已经申请成功了工具
配置 web server
证书申请成功了就基本搞定了,有了证书以后就在服务器上配置一下就能够了
nginx 配置示例:
server { listen 80; listen 443; ssl_certificate /etc/letsencrypt/live/weihanli.xyz/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/weihanli.xyz/privkey.pem; if ($scheme = http) { return 301 https://$host$request_uri; } server_name weihanli.xyz; }
从新加载 web 服务器配置或者从新重启web服务器以加载新证书,这里以从新加载 nginx 配置为例
sudo nginx -s reload
windows 系统上在命令行或 powershell 中执行如下命令:
nslookup -q=txt _acme-challenge.weihanli.xyz