HTTPS-使用Certbot自动配置Let’s Encrypt证书

原文地址: https://www.jianshu.com/p/3ffd27b64847

1. HTTPS基本介绍

现在各大厂商都在推行HTTPS,比如谷歌要求多个顶级域名要用HTTPS来加密,苹果要求开发者全部采用HTTPS等等。那什么是HTTPS呢?其实HTTPS只是HTTP的一个拓展,是在HTTP的基础上利用SSL/TLS来加密数据包的。工作流程如下:

An overview of the SSL or TLS handshake

图片来自IBM Knowledge Center: An overview of the SSL or TLS handshake

注意第(2)步Server给Client发送了一个Server certificates,这个里面包含有Server的一些信息,如域名、公司信息、序列号和签名信息组成等,这个证书可以个人生成,也可以由权威机构签发,当然个人的就不受大众信任,而权威机构签发的证书则会被信任。

具体的可以参考:细说 CA 和证书

2. Let’s Encrypt

CA的证书提供商有许多个,有收费的有免费的,而Let’s Encrypt就是其中之一的免费提供商。

2.1 如何获取Let's Encript的证书呢?

要从Let's Encript获取某个域名的证书,需要证明那你对该域名拥有控制权,对于该证明你可以使用某个使用ACME协议的软件来实现,而Certbot就是官方出的一个ACME客户端。

3. Certbot介绍

先介绍一些Certbot相关概念。

3.1 Authenticators和Installers

Certbot支持两种类型的plugin,一种是用来获取证书的,称为Authenticators;另外一种是用来安装证书的,称为Installers。有的plugin支持一种,有的两种都支持,如nginx。

安装证书:自动修改配置文件,如修改nginx的某个.conf文件

Authenticators plugin使用certonly命令来获取证书,而Installers plugin使用install命令来安装证书。

3.2 plugin说明

下面列举几个常用的plugin作简要说明:

  1. Webroot:本地有运行webserver并且有能力修改其配置,就可以用该种方式(创建隐藏文件.well-known),获取证书时无需暂停webserver的运行。
  2. Standalone:服务器未运行webserver可以使用该方式,要保持80或443端口开放。
  3. Nginx:自动获取和安装证书(自动修改配置文件)。

3.3 Certbot使用流程

Certbot的使用包含以下几个部分:

  1. 安装Certbot
  2. 生成证书
  3. 配置Web Server
  4. 更新证书

3.3.1 Certbot安装

安装Certbot参考:Certbot,直接选择软件和操作系统即可。

3.3.2 获取证书

使用certbot certonly命令然后根据提示操作即可。

[root@efd140d6210b /]# certbot certonly
Saving debug log to /var/log/letsencrypt/letsencrypt.log

How would you like to authenticate with the ACME CA?
-------------------------------------------------------------------------------
1: Spin up a temporary webserver (standalone)
2: Place files in webroot directory (webroot)
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 

对于nginx可以使用certbot --nginx来获取和安装证书。

获取完之后可以通过certbot certificates命令查看证书:

root@node01:~# certbot certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log

-------------------------------------------------------------------------------
Found the following certs:
  Certificate Name: www.youdomain.com
    Domains: www.youdomain.com
    Expiry Date: 2018-09-03 02:08:54+00:00 (VALID: 89 days)
    Certificate Path: /etc/letsencrypt/live/www.youdomain.com/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/www.youdomain.com/privkey.pem
-------------------------------------------------------------------------------

3.3.3 配置Web Server

不同Web Server的配置方式不同,这里以Nginx为例,在配置文件youdomain.conf中添加:

server {
    listen [::]:80;

    root /var/www/youdomain;
    index index.html index.htm;

    server_name www.yourdomain.com;

    charset utf-8;
    
    #.................

    listen 443 ssl; 
ssl_certificate /etc/letsencrypt/live/www.yourdomain.com/fullchain.pem; 
ssl_certificate_key /etc/letsencrypt/live/www.yourdomain.com/privkey.pem; 

}

需要了解Nginx的使用

配置完之后更新配置即可(nginx -s reload),到这里证书配置就完成了,正常情况下该域名HTTPS就可以访问了。

3.3.4 更新证书

由于Let’s Encrypt颁发的证书的有效期只有90天,这就需要更新证书。

Renewing certificates

certbot renew

如果使用了nginx plugin,则更新时需要使用certbot renew --quiet --installer node,否则会自动安装证书导致错误。

3.4 Certbot常用命令

// perform a test run
certbot certonly --dry-run
certbot renew --dry-run
// 显示证书信息
certbot certificates
// 撤销证书
certbot revoke --cert-path /etc/letsencrypt/live/CERTNAME/cert.pem
// 删除证书(撤销之后使用)
certbot delete --cert-name example.com

如果证书是测试的如--staging,撤销时也要加上。

3.5 Certbort其他功能

3.5.1 泛域名支持

可以使用DNS Plugins来实现。

Let's Encrypt泛域名证书

Reference

  1. An overview of the SSL or TLS handshake
  2. Let's Encript Getting Started
  3. Certbot documentation
  4. HTTPS 简介及使用官方工具 Certbot 配置 Let’s Encrypt SSL 安全证书详细教程
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容