|
|
@@ -0,0 +1,102 @@
|
|
|
+# certbot操作指南
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+**一个免费SSL证书获取工具**
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+PS:如果是单机的话,不要使用docker来运行nginx,否则会为certbot的操作会增加复杂度。
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 前言
|
|
|
+
|
|
|
+1. certbot是一个SSL证书(Let‘s Encrpt)申请工具,免费的SSL证书,每90天需要自己续期(可自动化),支持泛域名证书的申请
|
|
|
+2. 如果要申请泛证书(例:*.zhixinghe1.top),需要使用DNS的验证方式,这个国内域名商的验证方式比较麻烦,需要自己手动操作或者找插件
|
|
|
+3. 如果不熟悉操作,先加上--dry-run参数在测试环境中实操一下,再正式申请,否则失败次数过多,会有一段时间禁止申请
|
|
|
+5. 如果同时操作申请多个域名(精准域名),也是只会生成一个SSL证书
|
|
|
+5. 使用nginx插件的话,能够自动配置nginx,注:--dry-run在该情况下无法使用
|
|
|
+6. 使用nginx插件的话,nginx必须能狗正常操作,certbot才能正常执行
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 常用命令
|
|
|
+
|
|
|
+```shell
|
|
|
+# 查看主机中的证书信息
|
|
|
+certbot certificates
|
|
|
+
|
|
|
+# 证书申请,--dry-run 即是测试环境,-a manual 交互式申请
|
|
|
+certbot certonly -a manual --dry-run
|
|
|
+
|
|
|
+# 证书申请,使用nginx插件,--dry-run在该情况下无法使用
|
|
|
+certbot --nginx
|
|
|
+
|
|
|
+# 从证书颁发机构撤回SSL证书,交互模式中选择同步删除本地机器中的证书,如果错过了,需要使用delete指令删除
|
|
|
+# 证书名称指的是certbot certificates中的Certificate Name
|
|
|
+cerbot revoke --cert-name 证书名称
|
|
|
+
|
|
|
+# 从本地机器中删除证书,但是不会从证书颁发机构撤回SSL证书
|
|
|
+# 没有任何参数,会进入交互模式
|
|
|
+certbot delete
|
|
|
+```
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 申请步骤
|
|
|
+
|
|
|
+1. 安装certbot
|
|
|
+
|
|
|
+2. 执行证书申请命令,见常用指令。
|
|
|
+
|
|
|
+3. 按交互界面往下操作
|
|
|
+
|
|
|
+4. 如果是申请的精准域名,则按提示操作即可
|
|
|
+
|
|
|
+5. 如果申请的是泛域名,需要进自己的域名供应商里的域名解析里,按格式把certbot提供的字符串加入到解析中
|
|
|
+
|
|
|
+ 
|
|
|
+
|
|
|
+ 
|
|
|
+
|
|
|
+6. 在nginx需要创建一个指定访问路径的文件,并放入certbot工具提供的字符串,供certbot验证
|
|
|
+
|
|
|
+ 
|
|
|
+
|
|
|
+ 在nginx中通过配置一个文件路径,并把内容放到文件中即可
|
|
|
+
|
|
|
+ 
|
|
|
+
|
|
|
+ 
|
|
|
+
|
|
|
+7. 证书申请成功后,nginx的SSL证书配置,如果是泛域名的SSL证书,可以在http块中直接使用SSL全局指令直接配置,否则需要自己一个个配置
|
|
|
+
|
|
|
+ ```shell
|
|
|
+ http {
|
|
|
+ ssl_certificate /path/to/your/fullchain.pem;
|
|
|
+ ssl_certificate_key /path/to/your/privkey.pem;
|
|
|
+ }
|
|
|
+ ```
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## nginx插件的使用
|
|
|
+
|
|
|
+1. 如果nginx的配置**conf.d文件夹**中没有default.conf的话,那么执行中可能没有输入待申请域名的选项。
|
|
|
+2. 如果nginx的配置**conf.d文件夹**中有相关域名的配置的话,那么执行中可能没有输入待申请域名的选项,取而代之的是直接询问那个nginx中已配置域名需要启用SSL。
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## 参考
|
|
|
+
|
|
|
+* [Let's Encrypt 手动模式:泛域名 SSL 证书的免费解决方案](https://juejin.cn/post/6942896425738960926)
|
|
|
+* [nginx配置静态文件 通过url访问](https://www.cnblogs.com/OneSeting/p/15525402.html)
|
|
|
+* [docker部署certbot与nginx来获取ssl证书添加https及自动更新](https://www.cnblogs.com/vishun/p/15746849.html)
|
|
|
+* [Nginx 通过 certbot 为网站自动配置 SSL 证书并续期](https://www.cnblogs.com/wzlinux/p/11188419.html)
|
|
|
+
|