zoukankan      html  css  js  c++  java
  • let's encrypt 以dns方式 做https加密

    前言

    昨天在配置网站的时候,我使用了nginx做内部转发。

    按照一般的做法,配置好网站、nginx、certbot后,我们启动nginx,然后使用certbot颁发证书,就可以了。

    但是昨天,就没有生效。

    我上网查了查资料,发现let's encrypt有两种颁发证书的方式,一种是http,也就是我上面说的这种方式;另一种是dns,是一种船新的玩法(其实也不新,之前也见过,但是由于我当时用的还是渣tplink的二级域名,就没法用的那种)。

    按照教程搞了一波,发现还行,特此记录。

    前提

    首先声明,使用let's encrypt对网站进行https加密时,需要以下前提:

    1. nginx监听80端口,且80端口放通。
    2. 目标网站运行正常。
    3. 可以通过nginx转发到目标网站。

    DNS对网站加密的步骤

    1. 运行以下命令:

      certbot certonly -d eryoung2.me --preferred-challenges dns --manual --server https://acme-v02.api.letsencrypt.org/directory  #eryoung2.me是我的域名,通过域名解析挂在了本服务器上
      

      按照提示输入必要信息后(主要就是邮箱啦),就会出现此提示:

      -------------------------------------------------------------------------------
      Please deploy a DNS TXT record under the name
      _acme-challenge.eryoung2.me with the following value:
      
      MlXldX2Pj0fA16gsnHn8lfCP0pbRfVSO5gLCto1m7gE
      
      Once this is deployed,
      -------------------------------------------------------------------------------
      Press Enter to Continue
      
    2. 这时,去到域名供应商的域名解析界面,按照上面的提示添加一条TXT解析。

      主机: _acme-challenge

      记录: MlXldX2Pj0fA16gsnHn8lfCP0pbRfVSO5gLCto1m7gE

      如图所示:

      然后在服务器上点击回车,证书就可以颁发下来了。

    3. 成功后,我们可以使用certbot certificates来检查证书状态。

      需要注意的是,let's encrypt的证书有效期为90天,需要定时续期。

      续期可以通过定时任务来做,也可以按照官网的方法,运行此命令来做。

      echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" | sudo tee -a /etc/crontab > /dev/null
      
  • 相关阅读:
    DML和DQL语句
    MYSQL创建用户和授权方法(测试mysql5.7)
    安卓ViewPager中Button点击事件弹出Dialog
    安卓从popupwindow跳转到Activity页面
    Collect preferences failed, class java/lang/AutoCloseable not found in D:Program Files (x86)Androidandroid-sdkplatformsandroid-19android.jar
    安卓横屏布局设置
    C#控制台程序自动重启(检测是否连接网络)
    C++指针学习
    C++共享数据的保护
    C++结构体再学心得
  • 原文地址:https://www.cnblogs.com/young233/p/13725371.html
Copyright © 2011-2022 走看看