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 通过 SSL 或 HTTPS 运行 - 为 HTTPS 修改你的 Confluence 基础 URL
在你的浏览器中,进入 > 基本配置(General Configuration). 单击 编辑(Edit). 修改服务器的基础 URL 为 HTTPS.请参考文档 configuring t ...
- 按照勾选 删除表格的行<tr>
需求描述:有一个产品列表,有一个删减按钮,点击删减按钮,按照产品勾选的行,删除产品列表中对应的行数据 代码: //html代码<table id="table1"> & ...
- 《剑指offer》从尾到头打印链表
本题来自<剑指offer> 从尾到头打印链表 题目: 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 思路: 方案一:首先遍历到尾部,然后从尾部进行到头值进行操作,后进先 ...
- python网络爬虫笔记(六)
1.获取属性如果不存在就返回404,通过内置一系列函数,我们可以对任意python对象进行剖析,拿到其内部数据,但是要注意的是,只是在不知道对象信息的时候,我们可以获得对象的信息. 2.实例属性和类属 ...
- Tmk吃汤饭
问题 : Tmk吃汤饭 时间限制: 1 Sec 内存限制: 128 MB 题目描述 Tmk喜欢吃汤饭! Tmk喜欢吃汤饭!! Tmk喜欢吃汤饭!!! 汤饭窗口分点餐和取餐两个窗口,一位蜀黍负责点餐窗 ...
- Linux系统下inode满了导致无法写文件的解决思路
解决思路1:删除无用的临时文件,释放inode 进入/tmp目录,执行find -exec命令 find /tmp -type f -exec rm {} \; 遍历寻找0字节的文件,并 ...
- python 自动获取手机短信验证码
需要一个有权限的 APK 在手机实时存储短信到手机内存 /sdcard/smslog.txt 里(外部SD卡也可以知道能通过adb命令访问到): /***** ...... try {long tim ...
- RabbitMQ在java中基础使用
RabbitMQ相关术语: 1.Broker:简单来说就是消息队列服务器实体. 2.Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列. ...
- spring cloud Eureka注册中心集群搭建
1.创建springcloud-eureka maven项目 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0&quo ...
- HDU5950 Recursive sequence (矩阵快速幂)
Recursive sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Other ...