Certbot让网站拥有免费https证书
网站使用http协议,在chrome浏览器中总是报不安全,看着就让人不爽,自己建的网站,不安全总是会让自己心慌慌。看到有头有脸的网站都是https开头,心中自然也想装逼一把,让自己的网站高端大气上档次。搞一搞吧!Let's Encrypt(certbot)!
Let's Encrypt是一个免费的SSL证书发行项目,自动化发行证书,证书有90天的有效期,适合我们个人或者临时使用。certbot是Let's Encrypt发布的新的工具,生成证书的使用方法和证书续签就变得更加简单了。但是目前看certbot在一些老版本的Linux发行版上的兼容性还是有问题的,特别是在CentOS 5上因为python版本过低是无法用的,CentOS 6上需要先安装epel才行,当然也有很多第三方的工具你也可以自己去尝试一下。
运行环境centos7.4 nginx 1.14.0
1、安装certbot客户端
[root@izuf68g6a94fj32w0afx00z nginx]# yum install certbot
Loaded plugins: fastestmirror
base | 3.6 kB 00:00:00
epel | 3.2 kB 00:00:00
extras | 3.4 kB 00:00:00
nginx | 2.9 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/4): extras/7/x86_64/primary_db | 156 kB 00:00:00
(2/4): epel/x86_64/updateinfo | 937 kB 00:00:00
(3/4): updates/7/x86_64/primary_db | 1.3 MB 00:00:00
(4/4): epel/x86_64/primary | 3.6 MB 00:00:00
Loading mirror speeds from cached hostfile
epel 12738/12738
Package certbot-0.27.1-1.el7.noarch already installed and latest version
Nothing to do
我已经安装过了。
2、获取证书
certbot certonly --webroot -w /home/zengfp/www/blog/public -d zengfanping.com -d www.zengfanping.com
这个命令会为 zengfanping.com 和 www.zengfanping 这两个域名生成一个证书。
使用 --webroot 模式会在 /home/zengfp/www/blog/public 中创建.well-know文件夹。
这个文件夹里面包含了一些验证文件,certbot 会通过访问 example.com/.well-known/acme-challenge 来验证你的域名是否绑定的这个服务器。
证书生成完毕后,我们可以在/etc/letsencrypt/live/目录下看到对应域名的文件夹,里面存放了指向证书的一些快捷方式。
3、standalone模式
上面--webroot这个命令在大多数情况下都可以满足需求。
但是有些时候我们的一些服务并没有根目录,例如一些微服务,这时候使用 --webroot 就走不通了。
certbot 还有另外一种模式--standalone , 这种模式不需要指定网站根目录,他会自动启用服务器的443端口,来验证域名的归属。
我们有其他服务(例如nginx)占用了443端口,就必须先停止这些服务,在证书生成完毕后,再启用。
certbot certonly --standalone -d example.com -d www.example.com
4、获取证书出错
类似的如下:
IMPORTANT NOTES: The following errors were reported by the server: Domain: www.zengfanping.com
Type: connection
Detail: Fetching
http://www.zengfanping.com/.well-known/acme-challenge/xOiPmxEoy3bm8SZkNOskBj83OPOCmRHN6vvIQFSL-8I: 2
connection refused To fix these errors, please make sure that your domain name was
entered correctly and the DNS A/AAAA record(s) for that domain
contain(s) the right IP address. Additionally, please check that
your computer has a publicly routable IP address and that no
firewalls are preventing the server from communicating with the
client. If you’re using the webroot plugin, you should also verify
that you are serving files from the webroot path you provided.
这个时候你就需要检查自己的项目目录是否正确,域名解析是否正确,如果你在你的server_name处写了多个域名,就需要对每个域名都进行解析。还有你的项目路径一定要正确
server {
listen 80 default_server;
server_name zengfanping.com www.zengfanping.com;
rewrite ^/(.*) https://www.zengfanping.com/$1 permanent;
root /home/zengfp/www/blog/public;
index index.html;
location ~ /.well-known {
allow all;
}
# location / {
# root /home/zengfp/www/blog/public;
# index index.html index.htm;
# }
access_log /var/log/nginx/host.access.log main;
error_log /var/log/nginx/host.error.log;
}
在进行--webroot这个模式获取证书的时候,我把我的nginx服务关了,一直获取不来证书,而且一直报上面那个错误。报错之后还是需要点耐心的,因为如果你一直重复上面那个获取证书的命令,就会提示你获取证书太频繁,耐心啊。最后我把nginx服务启动之后,再次获取证书,就成功了。本人的一次坑,希望伙伴们不要走。
5、启用https
本人配置:
server {
listen 80 default_server;
server_name zengfanping.com www.zengfanping.com;
rewrite ^/(.*) https://www.zengfanping.com/$1 permanent;
root /home/zengfp/www/blog/public;
index index.html;
location ~ /.well-known {
allow all;
}
# location / {
# root /home/zengfp/www/blog/public;
# index index.html index.htm;
# }
access_log /var/log/nginx/host.access.log main;
error_log /var/log/nginx/host.error.log;
}
server {
listen 443 ssl;
ssl on;
server_name www.zengfanping.com;
root /home/zengfp/www/blog/public;
index index.html;
ssl_certificate /etc/letsencrypt/live/www.zengfanping.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.zengfanping.com/privkey.pem;
location ~ /\.ht {
deny all;
}
}
上面的配置中有个rewrite,就是让输入上面域名中的任何一个,都让其指向 https://www.zengfanping.com 这个地址。
最终效果:

6、跨过每一个小坑,让自己每天都进步一点点!您的点赞是我前进的鼓励!希望你不要吝啬哦。个人博客网址:https://www.zengfanping.com。不吝赐教
Certbot让网站拥有免费https证书的更多相关文章
- 教你快速撸一个免费HTTPS证书
摘要: 免费 HTTPS 证书,了解一下? HTTPS 已成为业界标准,这篇博客将教你申请Let's Encrypt的免费 HTTPS 证书. 本文的操作是在 Ubuntu 16.04 下进行,使用 ...
- 免费靠谱的 Let’s Encrypt 免费 https 证书申请全过程
申请 Let’s Encrypt证书的原因: 现在阿里云等都有免费的 https 证书,为什么还要申请这个呢(估计也是因为阿里云这些有免费证书的原因,所以 Let’s Encrypt 知道的人其实并不 ...
- Nginx反向代理+负载均衡简单实现(手动申请https证书,申请免费https证书,http强转https)
背景:A服务器(192.168.1.8)作为nginx代理服务器B服务器(192.168.1.150)作为后端真实服务器 现在需要访问https://testwww.huanqiu.com请求时从A服 ...
- 项目总结20:阿里云免费https证书申请
项目总结20:阿里云免费https证书申请 1. 登录阿里云控制台 www.aliyun.com,用账户信息登录 2. 在”产品与服务”搜索SSL,选择SSL证书 3. 点击购买证书 4. 选择” S ...
- linux免费https证书申请教程
linux免费https证书申请教程直接去阿里云 菜单有个证书服务进去有个购买证书菜单 选择免费的 然后会提示写个人资料 然后系统生成csr 然后提交审核这个时候会有份邮件 文件下载上传到你的服务器 ...
- 免费 Https 证书(Let's Encrypt)申请与配置
之前要申请免费的 https 证书操作步骤相当麻烦,今天看到有人在讨论,就搜索了一下.发现现在申请步骤简单多了. 1. 下载 certbot git clone https://github.com/ ...
- Nginx 通过 certbot 为网站自动配置 SSL 证书并续期
一.背景知识 1.1.http 和 https 是什么? 简单来说,http 是一个传输网页内容的协议,比如你看到的 http 开头的网站 http://www.163.com ,其网页上的文字.图片 ...
- 在阿里云里申请免费Https证书SSL
在阿里云控制台:安全(云盾)->证书服务->购买证书里(地址:https://common-buy.aliyun.com/?spm=5176.2020520163.cas.1.zTLyhO ...
- 阿里云申请免费https证书 + IIS服务器安装
参考: 阿里云免费SSL证书申请与安装使用(IIS7)
随机推荐
- Confluence 6 浏览默认的 Decorators
在任何时候,你都可以使用 "Site Layouts" 页面中的 "View Default" 来浏览默认的 decorator 文件.模板浏览器允许你查看使用 ...
- 【Java】「深入理解Java虚拟机」学习笔记(1) - Java语言发展趋势
0.前言 从这篇随笔开始记录Java虚拟机的内容,以前只是对Java的应用,聚焦的是业务,了解的只是语言层面,现在想深入学习一下. 对JVM的学习肯定不是看一遍书就能掌握的,在今后的学习和实践中如果有 ...
- 【scapy】读取pcap
scapy读取pcap包 假设有pcap包test.pcap,读取其中的分层流量信息 代码: import scapy_http.http try: import scapy.all as scapy ...
- 《剑指offer》斐波那契数列
本题来自<剑指offer> 斐波那契数列 矩阵覆盖 题目一: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0).n<=39 思路: ...
- 《剑指offer》 二维数组中的查找
本题目是<剑指offer>中的题目 二维数组中的查找 题目: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个 ...
- bzoj 5418
这是拓展crt的典型应用 在你开始做之前,我一定要告诉你一件事情:虽然这道题看着和拓展crt模板很像,但他俩是有巨大的区别的!不要直接把板子改吧改吧扔上去! 题目模型:求解模线性方程组 其中p1,p2 ...
- linux学习笔记之 basename, dirname
前言: basename: 用于打印目录或者文件的基本名称 dirname: 去除文件名中的非目录部分,仅显示与目录有关的内容.dirname命令读取指定路径名保留最后一个/及其后面的字符,删除其他部 ...
- matlab转c++代码实现(主要包含C++ std::vector,std::pair学习,包含数组与常数相乘,数组相加减,将数组拉成一维向量,图片的读入等内容)
MATLAB部分: xmap = repmat( linspace( -regionW/2, regionW/2, regionW), regionH, 1 );%linspace [x1,x2,N] ...
- Python面向对象 三大特性 综合案例+1(视频里的作业)
class Dog: # 在创建一个小狗实例的时候,给它设置几个属性 def __init__(self, name, age = 1): self.name = name self.age = ag ...
- 捷信达会员管理系统SQL语句相关
捷信达会员管理系统SQL语句相关 USE gshis GO SET ANSI_NULLS, QUOTED_IDENTIFIER ON GO /***************************** ...