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)
随机推荐
- kali访问宿主机Web页面解决方案
1.首先安装好PHPDVWA测试平台,将等级设置成low,kali中自带了python2.7.为了不再宿主机中修改python3.6,所以要利用kali来模访问宿主机中的Web页面.如果不进行配置修改 ...
- Brup Suite 渗透测试笔记(六)
接上次笔记这章记payload的类型分类做一说明: 1.simplelist是一个简单的payload类型,通过配置一个字符串作为payload,也可以手动添加字符串列表. 2.运行文件 Runtim ...
- vue用webpack打包时引入es2015插件
1.安装依赖包 $ npm install --save-div babel-preset-es2015 ps:babel-loader.babel-core应该是默认装好的,如果没有安装,请重新安装 ...
- Gson将字符串转map时,int默认为double类型
gson能够将json字符串转换成map, 但是在转成map时, 会默认将字符串中的int , long型的数字, 转换成double类型 , 数字会多一个小数点 , 如 1 会转成 1.0 Gs ...
- 重建控制文件报错 ORA-01503 ORA-01192
1. 错误信息 ORA-: CREATE CONTROLFILE failed ORA-: must have at least one enabled thread 2. 重建脚本 CREATE C ...
- POJ 3080 Blue Jeans (字符串处理暴力枚举)
Blue Jeans Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 21078 Accepted: ...
- last与lastb命令 读取的日志文件
在linux系统中,last与lastb命令用来列出目前与过去登录系统的用户相关信息.指令英文原义: last, lastb - show listing of last logged in user ...
- Python Day-1 练习
作业1 要求:1.输入用户密码 2.认真成功后显示欢迎信息 3.输入三次锁定 代码如下: __author__ = 'zhang.ning' username = "zhangning&qu ...
- 使用python调用email模块发送邮件附件
使用python调用email模块实现附件发送 需要模块: import datetime import time import sys import mimetypes import smtplib ...
- [转] meta标签的作用及整理
meta的标签的使用是我在前端学习中曾经困惑过一段时间的问题.一方面不是很了解meta标签的用途,另一方面是对于meta标签里的属性和值不是懂,也不知道从哪里冒出来的,所以这篇文章专门整理下meta标 ...