本站使用了 Pjax 等基于 JavaScript 的开发技术,但您的浏览器已禁用 JavaScript,请开启 JavaScript 以保证网站正常显示!

获取Let's Encrypt免费TLS/SSL证书的那点事儿

Let's Encrypt是什么

Let's Encrypt是一个于2015年三季度推出的数字证书认证机构,旨在以自动化流程消除手动创建和安装证书的复杂流程,并推广使万维网服务器的加密连接无所不在,为安全网站提供免费的SSL/TLS证书。 -- 引自维基百科

为什么要使用Let's Encrypt

Let's Encrypt的目标是以最友好的方式免费为网站启用HTTPS(SSL / TLS)。因为ISRG想要创建一个更安全,更尊重隐私的Web。简单来说,使用HTTPSx协议,可以给你或你所在的企业以下好处:

请保留出处

  • 所有信息都是加密传播,第三方无法窃听;
  • 具有校验机制,一旦被篡改,通信双方会立刻发现;
  • 配备身份证书,防止身份被冒充。

如何使用Let's Encrypt

使用Let's Encrypt有多种方法,总体而言,分为2种,即:

请保留出处

  • 命令行获取签证

    • Cerbot (官方推荐)
    • 第三方贡献脚本
  • 通过第三方的合作服务商获取证书

    • 国内

      • 阿里云
      • 腾讯云
      • 七牛云
      • ...
    • 国外

      This article is not authorized to post. Get authorization.
      • SSLforFree
      • ...

以通过Cerbot命令行签证为例

  • 获取项目

    $ git clone https://github.com/certbot/certbot.git
  • 配置Nginx的http server段,其作用使CA机构通过文件存在性检测来验证域名所有权,即身份认证,如果CA无法访问或无法被正确Proxy到该路径,下述签证操作将失败,并报404

    location ^~ /.well-known/acme-challenge/ { #固定路径
        root /usr/local/nginx/html; #webroot,可自定义,这里仅为示例,需要注意的是必须同certbot-auto的webroot参数路径一致
    }
  • 开始签署证书

    $ cd certbot
    $ ./certbot-auto certonly -d v3.hnsyun.com --webroot -w /usr/local/nginx/html #此处webroot必须和Ngingx实例的root相同;输完该行指令后,会提示你输入域名所有者信息,如实填写即可,以下是返回的信息
    
    如实填写签署信息即可,此处略...
    
    IMPORTANT NOTES:
    - Congratulations! Your certificate and chain have been saved at:
    /etc/letsencrypt/live/v3.hnsyun.com/fullchain.pem        #生成的证书
    Your key file has been saved at:
    /etc/letsencrypt/live/v3.hnsyun.com/privkey.pem        #生成的密钥
    Your cert will expire on 2018-10-29. To obtain a new or tweaked
    version of this certificate in the future, simply run certbot-auto
    again. To non-interactively renew *all* of your certificates, run
    "certbot-auto renew"
    - If you like Certbot, please consider supporting our work by:
    
    Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
    Donating to EFF:                    https://eff.org/donate-le
  • 将获取的证书和密钥配置到Nginx的HTTPS配置段

    请保留出处

    server {
        listen       443 ssl;
        server_name  www.XXX.com;
    
        ssl_certificate      证书路径
        ssl_certificate_key  密钥路径
    
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
    
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
    
    location / {
        proxy_pass http://XXX;
        proxy_redirect default;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        }
    }

 继续浏览关于 HTTPS 的文章

 本文最后更新于 2019/01/26 17:51:39,可能因经年累月而与现状有所差异

 引用转载请注明:数字漩涡 > 安全 > 获取Let's Encrypt免费TLS/SSL证书的那点事儿

发现共鸣

如是说:我觉得,我这辈子最灿烂的笑容,大概都奉献给我电脑屏幕了。