<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Certbot on Dapeng Zhang</title><link>https://zhangdapeng.dev/tags/certbot/</link><description>Recent content in Certbot on Dapeng Zhang</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Thu, 10 Jul 2025 10:57:46 +0000</lastBuildDate><atom:link href="https://zhangdapeng.dev/tags/certbot/index.xml" rel="self" type="application/rss+xml"/><item><title>certbot使用总结</title><link>https://zhangdapeng.dev/p/certbot-shi-yong-zong-jie/</link><pubDate>Thu, 10 Jul 2025 10:57:46 +0000</pubDate><guid>https://zhangdapeng.dev/p/certbot-shi-yong-zong-jie/</guid><description>&lt;p&gt;官方宣称certbot&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;使用EFF的Certbot在您的网站上自动启用HTTPS，部署Let&amp;rsquo;s Encrypt的证书。&lt;/p&gt;

 &lt;/blockquote&gt;

 &lt;blockquote&gt;
 &lt;p&gt;Automatically enable HTTPS on your website with EFF&amp;rsquo;s Certbot, deploying Let&amp;rsquo;s Encrypt certificates.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="给指定域名生成免费ssl证书方式"&gt;给指定域名生成免费ssl证书方式
&lt;/h2&gt;&lt;p&gt;举个例子比如我要给我的www.gowhich.com生成证书可以使用如下，命令&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;certbot certonly --webroot -w /home/wwwroot/gowhich/web -d www.gowhich.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;和&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;certbot certonly --standalone --preferred-challenges http -d www.gowhich.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;前提，你的域名必须已经解析成功，是否解析成功可以通过下面命令测试&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nslookup www.gowhich.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;会得到类似如下信息&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Server:		172.18.0.1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Address:	172.18.0.1#53
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Non-authoritative answer:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Name:	www.gowhich.com
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Address: xxx.xxx.xxx.xxx &lt;span style="color:#75715e"&gt;# ip地址&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;下面说生成证书的命令&lt;/p&gt;
&lt;p&gt;第一个命令，certbot会到你项目创建一个文件，然后通过访问你的域名来访问进行网站验证，通过后则生成证书 第二个命令则是通过启动内部服务，来检测验证网站，最后生成一个证书&lt;/p&gt;
&lt;p&gt;我个人的项目比较多，使用的语言也多，Yii开发的项目在使用第一个命令生成证书的时候是没有问题的，但是第一个命令在Flask开发的项目中会遇到问题，提示访问不了文件，可能是路由的问题导致的，暂时没有找到解决思路，但是我们不可能因为一个证书去修改一个项目，如果改的话我觉得也是大费周折，还好certbot提供了第二种方式，只不过会需要暂时停止80端口的访问，这个对于跟人项目而言问题还好不是很严重，所以这里推荐第二种命令的方式。&lt;/p&gt;</description></item><item><title>Certbot免费https证书安装</title><link>https://zhangdapeng.dev/p/certbot-mian-fei-https-zheng-shu-an-zhuang/</link><pubDate>Thu, 03 Jul 2025 17:37:31 +0000</pubDate><guid>https://zhangdapeng.dev/p/certbot-mian-fei-https-zheng-shu-an-zhuang/</guid><description>&lt;h2 id="install-certbot-安装certbot"&gt;Install certbot 安装certbot
&lt;/h2&gt;&lt;p&gt;安装步骤可到这里 &lt;a class="link" href="https://certbot.eff.org/#debianjessie-nginx" target="_blank" rel="noopener"
 &gt;https://certbot.eff.org/#debianjessie-nginx&lt;/a&gt; 根据自己的服务器情况选择具体的安装版本&lt;/p&gt;
&lt;h2 id="配置证书"&gt;配置证书
&lt;/h2&gt;&lt;p&gt;可以使用如下命令，这样的好处是我们可以在下次进行自动更新证书的话，可以方便的处理证书&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;certbot certonly --webroot -w /home/wwwroot/www1.gowhich.com/web -d gowhich.com -d www.gowhich.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;注意这里的webroot路径一定是你静态文件能够被访问到的，不然，无法进行证书验证&lt;/p&gt;
&lt;p&gt;比如我的另外一个域名可以这样设置【Flask项目】&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;certbot certonly --webroot -w /home/wwwroot/www.walkerfree.com/walkerfree/static -d walkerfree.com -d www.walkerfree.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;输出如下：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Saving debug log to /var/log/letsencrypt/letsencrypt.log
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Starting new HTTPS connection &lt;span style="color:#f92672"&gt;(&lt;/span&gt;1&lt;span style="color:#f92672"&gt;)&lt;/span&gt;: acme-v01.api.letsencrypt.org
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Obtaining a new certificate
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Performing the following challenges:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;http-01 challenge &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; walkerfree.com
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;http-01 challenge &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; www.walkerfree.com
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Using the webroot path /home/wwwroot/www.walkerfree.com/walkerfree/static &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; all unmatched domains.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Waiting &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; verification...
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Cleaning up challenges
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Generating key &lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2048&lt;/span&gt; bits&lt;span style="color:#f92672"&gt;)&lt;/span&gt;: /etc/letsencrypt/keys/0003_key-certbot.pem
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Creating CSR: /etc/letsencrypt/csr/0003_csr-certbot.pem
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;IMPORTANT NOTES:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - Congratulations! Your certificate and chain have been saved at
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; /etc/letsencrypt/live/walkerfree.com/fullchain.pem. Your cert will
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; expire on 2018-01-22. To obtain a new or tweaked version of this
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; certificate in the future, simply run certbot again. To
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; non-interactively renew *all* of your certificates, run &lt;span style="color:#e6db74"&gt;&amp;#34;certbot
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; renew&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - If you like Certbot, please consider supporting our work by:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Donating to ISRG / Let&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;s Encrypt: https://letsencrypt.org/donate
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Donating to EFF: https://eff.org/donate-le
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后就可以进行nginx配置了&lt;/p&gt;
&lt;p&gt;当我们不希望每次都来自己更新，或者自己忘记了更新，证书过期了，不就很危险了，执行下面的命令试试 是否可以正常的自动更新，如果可以的话 我们就把此命令加入我们的定时任务中就可以了&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo certbot renew --dry-run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;加入定时任务&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;30&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;2&lt;/span&gt; * * &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; /usr/bin/certbot renew &amp;gt;&amp;gt; /var/log/certbot-renew.log
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;每周一半夜2点30分执行renew任务。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;2019-02-20补充&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;通过下面命令可以通过certbot自己的服务器来验证证书 - 这个只在自己的网站不支持验证证书的情况下使用&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;certbot certonly --standalone --preferred-challenges http -d walkerfree.com -d www.walkerfree.com
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;注意：前提可能需要将自己本地监听80端口的服务器暂时停掉一会&lt;/p&gt;</description></item></channel></rss>