Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Let’s Encrypt免费ssl证书申请

Let’s Encrypt免费ssl证书申请

作者头像
爱游博客
发布于 2019-08-07 03:43:22
发布于 2019-08-07 03:43:22
4.2K0
举报
文章被收录于专栏:爱游博客爱游博客

介绍

Let’s Encrypt是一个免费并且开源的CA,且已经获得Mozilla、微软等主要浏览器厂商的根授信。它极大低降低DV证书的入门门槛,进而推进全网的HTTPS化。

Certbot is an easy-to-use client that fetches a certificate from Let’s Encrypt—an open certificate authority launched by the EFF, Mozilla, and others—and deploys it to a web server.

本文所有的操作均在Ubuntu14.04下进行安装和配置

安装

直接安装Let’s Encrypt相对比较复杂和费事。为了简化安装步骤,我们就直接使用 Let’s Encrypt 官网推荐的自动部署脚本Certbot。 根据环境选择,我们选择Nginx+Ubuntu14.04,进入官方推荐脚本页面,脚本如下:

  1. $ sudo apt-get update
  2. $ sudo add-apt-repository ppa:certbot/certbot
  3. $ sudo apt-get update
  4. $ sudo apt-get install python-certbot-nginx

因为我本机已经有了python和Nginx,所以我的脚本简化为了

  1. sudo apt-get update
  2. sudo add-apt-repository ppa:certbot/certbot
  3. sudo apt-get update
  4. sudo apt-get install certbot

接下来,我们要生成自己的证书。

获取证书前需要先停止 Nginx 服务

  1. service nginx stop

生成单域名证书

  1. certbot certonly --standalone --email your@email.com -d yourdomain.com

Tips: yourdomain.com目前必须是你的绝对域名,因为Let’s Encrypt暂时还不支持泛域名,但是根据官方的消息说,预计2018年一月,会实现支持。Wildcard Certificates Coming January 2018

到此,如果没有什么意外,执行完命令之后,你就可以看到你的证书创建成功的提示!默认是在 /etc/letsencrypt/live 路径下。

Nginx配置

有了证书,接下来我们就可以配置Nginx了。 进入Nginx的配置文件夹(/etc/nginx/sites-available/),创建一个ssl.conf配置文件,在里面增加一个server配置。 配置的内容,基本和监听http的配置相似,主要的区别是监听443端口和证书的加载,一个例子如下:

  1. server {
  2. # SSL configuration
  3. listen 443 ssl;
  4. listen [::]:443 ssl;
  5.     ssl on;
  6.     ssl_certificate   /etc/letsencrypt/live/123456.cloud/fullchain.pem;
  7.     ssl_certificate_key  /etc/letsencrypt/live/123456.cloud/privkey.pem;
  8.     ssl_session_timeout 5m;
  9.     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  10.     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  11.     ssl_prefer_server_ciphers on;
  12.     root /var/www/html;
  13. # Add index.php to the list if you are using PHP
  14. index index.html index.htm index.nginx-debian.html;
  15.         location / {
  16. # First attempt to serve request as file, then
  17. # as directory, then fall back to displaying a 404.
  18.                 proxy_set_header X-Real-IP $remote_addr;
  19.                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  20.                 proxy_set_header Host $http_host;
  21.                 try_files $uri $uri/ =404;
  22.         }
  23. }

保存,然后reload ngxin(nginx -s reload)配置。这时候我们就可以在域名前加上https,就可以发现成功了!

仅限Https访问

有了Https,我们一般也就不想要http的访问了,或者说想把所有的http请求转为https。方法有很多种,我的方法是使用rewrite,把原先的Http全部转化为Https。 一个例子如下:

  1. server {
  2. listen 80 default_server;
  3. listen [::]:80 default_server;
  4.     server_name 123456.cloud;
  5.     rewrite ^(.*) https://$server_name$1 permanent;
  6. }

自此,个人小站的Https加密工作完成。

Github Pages使用Https

一般来说,我们都会把自己的Github Pages博客定义成自己的域名。但是会发现,变为自己的域名之后,就没有Https了。所以为了能让我们的博客也用上Https,这时候也要折腾一下了。 原理很简单,就是用自己的服务器进行反向代理,实际上访问Github Pages博客就是访问自己的服务器。 我自己的配置如下,

  1. server {
  2. # SSL configuration
  3. listen 443 ssl;
  4. listen [::]:443 ssl;
  5.         ssl on;
  6.         server_name blog.123456.cloud;
  7.         ssl_certificate   /etc/letsencrypt/live/blog.123456.cloud/fullchain.pem;
  8.         ssl_certificate_key  /etc/letsencrypt/live/blog.123456.cloud/privkey.pem;
  9.         ssl_session_timeout 5m;
  10.         ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  11.         ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  12.         ssl_prefer_server_ciphers on;
  13.         location / {
  14.                 proxy_set_header   X-Real-IP $remote_addr;
  15.                 proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
  16.                 proxy_set_header   Host $http_host;
  17.                 proxy_pass         http://151.101.229.147;
  18.     }
  19. }

这里需要注意的是,proxy_pass的地址是ping自己的Github Pages地址得到的,也就是那个.io结尾的地址。然后在你的域名提供商那里,修改你博客的A地址解析就可以了。 这里有个细节需要注意的是,ping自己的GitHub Pages,应该在Nginx所在的服务器进行ping,这样得到的IP是最快的! 当然,如果这里你也仅限Https访问的话,把你的http监听也进行rewrite一下就好了!

证书续期

Let’s Encrypt 生成的免费证书为3个月时间,使用 certbot renew 可以无限免费续签 Https 证书。 为了方便,我们可以使用crontab进行自动续期。注意在使用certbot renew的时候,要先关闭nginx才能成功。

常见的问题

1、Problem binding to port 443: Could not bind to IPv4 or IPv6.. Skipping 原因和解决方案:这是因为80、443端口被占用,解除对端口的占用即可,例如执行 service nginx stop ^_^

2、DNS解析生效慢 解决方案:你的域名供应商一般都会提供DNS服务器,ping一下dns服务器,得到IP。然后在你本机的DNS配置里,换成ping DNS服务器得到IP即可。

3、Nginx配置不起作用,DNS也不起作用 解决方案: (1)、换除Chrome以外的浏览器 (2)、在Chrome中,F12打开控制台,按住刷新按钮,选择‘清空缓存并硬性重新加载’ Chrome为了加快速度,这个的缓存机制倒是挺讨厌的。

cambrian.render('tail')

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年2月17日1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SSL证书自动化如此简单-certbot实践
方式一:用指定根目录的方式,会在根目录下创建一个.well-known来验证域名的所有权
用户10002156
2024/01/05
8350
SSL证书自动化如此简单-certbot实践
网络集群节点自动切换nginx负载均衡,自动生成nginx配置文件。小绿叶技术博客--中央集成--外层公共能源控制系统--集群网络节点控制--主驱动
eisc
2025/05/07
1050
使用 Certbot 配置 HTTPS,让你的网站不再裸奔
不错,今天的主角就是给力的 Certbot,免费好用,真是我等 diaosi 的一大福音。
周萝卜
2019/07/23
1.4K0
使用 Certbot 配置 HTTPS,让你的网站不再裸奔
使用Let's Encrypt的SSL证书配置HTTPS手记
前段时间,看见很多大会都在分享全站HTTPS的经验。HTTPS固然好,前提是SSL证书,并且签发证书的机构要靠谱。沃通的CA证书就相继被Mozilla和Google封杀了。曾经对于普通用户,权威,安全,并且免费的证书无疑就像天上的星星,可望而不可及。现在,这些星星变成了馅饼掉了下来。没错,我们可以申请安全免费的ssl证书--- Let's Encrypt。 Let’s Encrypt是电子前哨基金会(EFF)发布的免费 SSL 证书服务,Google,Mozilla和Microsoft都极力支持。很早之前就
李海彬
2018/03/19
2.5K0
使用Let's Encrypt的SSL证书配置HTTPS手记
教你快速撸一个免费HTTPS证书
HTTPS已成为业界标准,这篇博客将教你申请Let’s Encrypt的免费HTTPS证书。
Fundebug
2018/07/06
1.8K2
教你快速撸一个免费HTTPS证书
使用Certbot工具来申请和管理Let’s Encrypt证书
Certbot 是一个自动化工具,可以帮助你申请和管理 Let’s Encrypt SSL 证书。以下是如何使用 Certbot 申请和管理 Let’s Encrypt 证书的详细步骤:
夜梦星尘
2024/11/12
7630
使用Certbot工具来申请和管理Let’s Encrypt证书
换个方式安装 Let’s Encrypt
之前没有碰到过这个问题,不论是 14.0 还是 16.0 的 Ubuntu 版本,今天在腾讯云上出现了,而且重装系统,两个操作系统版本上都遇到这个问题,google无解。
上山打老虎了
2022/06/14
5310
换个方式安装 Let’s Encrypt
Let's Encrypt 安装配置教程,免费的 SSL 证书
要求配置 DNS TXT 记录,从而校验域名所有权,也就是判断证书申请者是否有域名的所有权。
用户6884826
2021/07/09
4.2K0
使用acme.sh申请Let's Encrypt免费的SSL证书
acme.sh 实现了 acme 协议,可以从letsencrypt生成免费的证书。接下来将为大家介绍怎样申请Let's Encrypt通配符证书。
青阳
2021/09/15
5.8K4
教你快速撸一个免费HTTPS证书
HTTPS 已成为业界标准,这篇博客将教你申请Let’s Encrypt的免费 HTTPS 证书。
Fundebug
2020/01/02
9920
手把手教你免费申请支持通配符的 SSL 证书
得益于 Google 等大厂的消灭 HTTP 运动和 Let’s Encrypt 非盈利组织的努力,越来越多的站点开始迁移到 HTTPS,下图是 Let’s Encrypt 的统计数据。
iMike
2019/07/30
6.9K0
获取Let's Encrypt免费TLS/SSL证书的那点事儿
Let's Encrypt是一个于2015年三季度推出的数字证书认证机构,旨在以自动化流程消除手动创建和安装证书的复杂流程,并推广使万维网服务器的加密连接无所不在,为安全网站提供免费的SSL/TLS证书。 -- 引自维基百科
用户1456517
2019/03/05
1.6K0
使用Let's Encrypt免费证书实现https
Let's Encrypt是一家免费、开放、自动化的证书颁发机构(CA),为公众的利益而运行(由非盈利组织互联网安全研究小组(ISRG)运营)。
极客运维圈
2020/06/01
1.8K0
使用Let's Encrypt免费证书实现https
博客搭建(三):域名配置及SSL证书配置
> 现在大多数网站都支持 https 连接,而且 chrome 浏览器要求网站必须提供 https 连接,否则会提示警告(此网站不安全),所以说以后网站支持 https 连接是必不可少的。
子晋
2022/01/18
8500
Docker获取Let`s Encrypt SSL 证书
为了方便维护、升级,同时也避免破坏本地的开发环境,我这里使用docker方式来运行certbot。整个过程分为两步:首次申请证书和证书更新。
孟斯特
2023/11/15
8300
你的网站HTTPS了吗 | Let’s Encrypt
前言 下午,图书馆闭馆了了、得找一个安全的地方上网(o)/~,一直听说着Let’s Encrypt。前几天玩了一下,但是本地运行Let’s Encrypt不能生成证书,Maybe School DNS question :-D,那就在腾讯云服务器玩玩。 ---- Let’s Encrypt Let's Encrypt是由EFF、Mozilla、Cisco、Akamai、IdenTrust与密西根大学研究人员共同创立的免费的凭证中心,目的在于推动全球所有的网站都使用HTTPS加密传输,创建一个更安全、更具
AlicFeng
2018/06/08
2.4K0
Linux 下 Nginx 安装部署 Let’s Encrypt 证书实现 HTTPS
网站转成https是大势所趋。但是在国内,推进的过程显然要比国外慢很多。现阶段如果将自己的网站改成https以后,会碰到这样的尴尬现象:如果在页面上引用了http://的链接或者图片,用户在浏览器上会看到类似该网站是非安全网站的警告,对于网站运营者来说可以说非常冤。由于很多链接是第三方的,没有办法去控制。
星哥玩云
2022/07/14
3.4K0
Linux  下 Nginx 安装部署 Let’s Encrypt 证书实现 HTTPS
Let’s Encrypt 官方推荐 Certbot 工具快速部署 SSL 证书
Let’s Encrypt免费 SSL 证书已经受到了包括 FireFox、Chrome 在内的众多主流浏览器的兼容和支持,目前国内的应用主要是提现在各大电商网站和门户网站上,可以提高访问和交易安全性。很多外贸公司网站也使用是因为 google 已经明确表示有提供 SSL 证书将会是一个加分因素。那么对于我们广大站长来说,也许将来某一天你的网站就需要添加这么一个 SSL 证书。 给网站添加 SSL 证书的方式有很多,老魏以后会分别写教程。今天魏艾斯博客(www.vpsss.net)说一下Let’s Encr
魏艾斯博客www.vpsss.net
2018/06/01
2.2K0
在CentOS Linux 7.5上使用Let’s Encrypt以保护Nginx
Let's Encrypt是由互联网安全研究组(ISRG)开发的免费开放认证机构。 Let's Encrypt颁发的证书现在几乎所有浏览器都信任。
星哥玩云
2022/07/13
1.9K0
在CentOS Linux 7.5上使用Let’s Encrypt以保护Nginx
在Ubuntu 18.04上使用Let’s Encrypt保护Nginx
Let's Encrypt是由互联网安全研究组(ISRG)开发的免费开放认证机构。 Let's Encrypt颁发的证书现在几乎所有浏览器都信任。
星哥玩云
2022/07/13
1.4K0
在Ubuntu 18.04上使用Let’s Encrypt保护Nginx
推荐阅读
相关推荐
SSL证书自动化如此简单-certbot实践
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档