文档章节

使用 Let's Encrypt(Certbot) 配置 HTTPS

温存
 温存
发布于 2017/03/10 15:04
字数 709
阅读 250
收藏 2

使用 Let's Encrypt(Certbot) 配置 HTTPS

1. 安装

git clone https://github.com/letsencrypt/letsencrypt
//或者
$ wget https://dl.eff.org/certbot-auto

如果提示Git命令无效的话,需要安装一下GIt,直接执行命令 yum install git-all 完成安装

下载完成之后,执行 ls 命令会看到当前目录下多了一个letsencrypt目录, 进入这个目录:

cd letsencrypt

准备安装,执行如下命令:

./letsencrypt-auto

这个小工具会自动下载并安装相关依赖和 Python 包。稍等一下就完成了。

2. 生成证书

生成证书过程中需要鉴权。有多种方式,比如 webroot 、 standalone 、 apache 、 nginx 、 manual 等。我使用过前两种。 这两种中,简单一点的是 standalone 。不过,这种方式需要把现有的 WebServer 停掉,因为这种方式下 certbot 需要占用 80 端口。

# ./certbot-auto certonly --text --agree-tos --email webmaster@example.com --standalone -d example.com -d www.example.com -d service.example.com

-d 参数指定域名,可多个。一般第一个是主域名。

webroot 方式稍微繁琐一些,但好处是不需要关停现有的 WebServer 。此方法需要在域名对应的根目录下新建 .well-known 目录并写入若干文件供验证服务访问。 因此需要配置 WebServer 允许外部访问 http://example.com/.well-known 路径。配置方法请参考相应 WebServer 的文档。Nginx 的默认配置应该不用修改,Apache 就不知道了。 另外,不同的域名的根路径可能不同,下面的例子中可以看到为不同的域名指定不同的根路径。

./certbot-auto certonly --text --agree-tos --email webmaster@excample.com --webroot -w /var/www/example -d example.com -d www.example.com -w /var/service/example -d service.ulefa.com

无论使用那种方式,运行以上命令后都会在 /etc/letsencrypt 生成一堆东西,包括证书。

3. 修改 WebServer 配置以提供 HTTPS 服务

这里以 Nginx 作例子吧。

打开 Nginx 的配置文件(默认为: /etc/nginx/nginx.conf ),在需要提供 HTTPS 的 server 下新增以下三行,并把

listen 80; 删掉:
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

新增以下 server 使所有 HTTP 请求都跳转至 HTTPS :

server {
listen   80;
server_name example.com www.example.com service.example.com;
return 301 https://$host$request_uri;
}

4.定期 renew

Let's Encrypt 的证书有效期为 90 天,所以需要在到期前 renew 一下证书。 使用以下命令即可。

./certbot-auto renew --text --agree-tos --email webmaster@excample.com --webroot -w /var/www/example -d example.com -d www.example.com -w /var/service/example -d service.ulefa.com

或者直接运行以下命令,此时 certbot 会使用默认参数(此例为: /etc/letsencrypt/renewal/example.com.conf ):

 ./certbot-auto renew

又或者在 crontab 里加入定时任务,每隔 80 天的凌晨 4 点执行一次 renew:

0 4 */80 * * /path/to/certbot-auto renew &>> /dev/null

启用 HTTPS 之后,会增加一点对服务器计算资源的占用,但是这非常值得。营造安全干净的网络环境需要大家共同的努力。

© 著作权归作者所有

共有 人打赏支持
温存
粉丝 1
博文 4
码字总数 2313
作品 0
合肥
程序员
私信 提问
用Certbot自动生成免费的Let's Encrypt Https证书

一、怎样遇到Let's Encrypt 青橘子(qjuzi.com)需要搭建一个健壮的后端,希望采用安全的HTTPS协议,多方寻找,申请过免费证书,就在要准备购买阿里代理的证书时,发现了Let's Encrypt。 二、什...

花有信
2017/11/03
0
0
Let’s Encrypt & Certbot 浅谈

前言 当我们想给网站启用, 通常需要从证书颁发机构购买证书, 并配置到现有的服务上来实现. 这里暗藏的痛点是: 我们需要花钱( 买证书) 证书颁发机构( 质量参差不齐, 不一定靠谱) 需要手动添加...

taadis
2017/02/24
0
0
https的第三步之配置nginx

背景 由于前两步需要去阿里云或者又拍云上购买证书才可以 但是对于需要在对应可行性进行分析&配置更新上 决定先使用Let’s Encrypt进行证书的签名和部署【免费蛋糕不用白不用~】 Let's Encr...

Mr_Qi
02/15
0
0
Let's Encrypt 使用教程,免费的SSL证书,让你的网站拥抱 HTTPS

这篇文章主要讲的就是如何让自己的网站免费从HTTP升级为HTTPS,使用的是 Let's Encrypt的证书。实际上也就是一个Let's Encrypt 免费证书获取教程 。 为什么要上HTTPS,说一个小故事。 从前有...

yzy121403725
2017/11/14
0
0
让你的网站秒配 HTTPS 证书

原谅我当一次标题党 ^_^ 网站为什么要配置 HTTPS,以及配置 HTTPS 有什么优点就不再解释了,我们直奔主题,使用 Certbot 工具让你的网站秒配 HTTPS 证书。 Certbot 介绍 Certbot is an easy...

angkee
2017/08/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

开源 java CMS - FreeCMS2.8会员我的留言

项目地址:http://www.freeteam.cn/ 我的留言 从左侧管理菜单点击我的留言进入。在这里可以查看当前登录会员的所有留言记录。 查看留言 点击留言标题可以查看留言详细内容。 删除留言 选择留...

freeteam
6分钟前
1
0
OSChina 周五乱弹 —— 这就是不要女朋友的理由

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @狄安娜的猫 :分享丁家鑫的单曲《丁家鑫 - 克罗地亚狂想曲 - 古筝remix》 《丁家鑫 - 克罗地亚狂想曲 - 古筝remix》 手机党少年们想听歌,请...

小小编辑
37分钟前
276
12
CentOS配置Tomcat监听80端口,虚拟主机

Tomcat更改默认端口为80 更改的配置文件是: /usr/local/tomcat/conf/server.xml [root@test-a ~]# vim /usr/local/tomcat/conf/server.xml # 找到 Connector port="8080" protocol="HTTP/1......

野雪球
今天
6
0
《稻盛和夫经营学》读后感心得体会3180字范文

《稻盛和夫经营学》读后感心得体会3180字范文: 一代日本经营之圣稻盛和夫凭借刻苦勤奋的精神以及深植于佛教的商业道德准则,成为了“佛系”企业家的代表人物。在《稻盛和夫经营学》“领导人...

原创小博客
今天
4
0
java框架学习日志-5(常见的依赖注入)

依赖注入(dependency injection) 之前提到控制反转(Inversion of Control)也叫依赖注入,它们其实是一个东西,只是看的角度不同,这章详细说一下依赖注入。 依赖——指bean对象创建依赖于...

白话
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部