前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >白嫖https免费证书

白嫖https免费证书

作者头像
叔牙
修改2023-06-25 10:53:44
修改2023-06-25 10:53:44
1K00
代码可运行
举报
运行总次数:0
代码可运行

一、背景

HTTPS 证书的定价因供应商、证书类型、证书品牌、有效期等因素而异。一般来说,SSL/TLS 证书的价格分为以下几种类型:

  1. DV 证书:DV(Domain Validation)证书是最基础的 SSL/TLS 证书,只验证域名的所有权,通常在购买后几分钟内就可以获取到。由于验证的精度较低,价格相对较低,一般在 100-200 元之间。
  2. OV 证书:OV(Organization Validation)证书需要证书颁发机构对申请人的身份进行更严格的验证,并在证书中包含一些公司信息。由于 OV 证书的安全性较高,价格也相对较高,一般在 500-1000 元之间。
  3. EV 证书:EV(Extended Validation)证书是高级别的 SSL/TLS 证书,需要证书颁发机构对申请人的身份和组织信息进行更加详细的验证,同时在浏览器地址栏中显示绿色安全锁。由于 EV 证书的安全性最高,价格也最贵,一般在数千元至万元不等。

需要注意的是,有些证书供应商可能会提供免费的 DV 证书,但使用时需要注意是否符合自己的需求和安全要求。

总的来说,选择适合自己网站的 SSL/TLS 证书需要根据需求和安全要求进行综合考虑。在选择证书供应商时,除了价格因素外,还需要注意品牌信誉、技术支持、证书扩展功能等方面的因素。


由于http协议不安全特性,对于h5或者官网以及接口api通常使用https协议,那么就需要在网关层配置https证书,证书可以购买,也可以免费生成,当然免费生成的一般都有时效性。如果不差钱可以直接购买收费的证书,有效期也基本不需要自己管理;如果考虑到成本问题,那么当然也可以使用免费的证书,然后临过期自动续期即可。

根据引言部分的描述,大部分场景需要DV证书即可。

二、证书生成与配置

1.安装nginx
代码语言:javascript
代码运行次数:0
运行
复制
yum -y install nginx
usermod -a -G root nginx

2.配置域名解析和监听

在域名平台配置域名解析记录(aws route53、阿里云云解析dns和其他域名管理平台),将域名解析到安装nginx的机器,开放nginx机器80和443端口。配置A记录即可:

代码语言:javascript
代码运行次数:0
运行
复制
test.xxx.net    -> A记录 -> ip

nginx添加配置,监听域名和80端口:

代码语言:javascript
代码运行次数:0
运行
复制
server {
    listen       80;
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_comp_level 6;
    gzip_types text/plain application/javascript text/css application/xml;  
    server_name  test.xxx.net;
    location ^~ /.well-known/acme-challenge/ {
            default_type "text/plain";
            root     /root/cerbot/;
    }
}

检测nginx配置并重新加载配置:

代码语言:javascript
代码运行次数:0
运行
复制
nginx -t
nginx -s reload

这样保证了域名http协议转发没有问题。前边配置中有一个比较关键的配置,生成ssl证书的时候会用到。

代码语言:javascript
代码运行次数:0
运行
复制
  location ^~ /.well-known/acme-challenge/ {
            default_type "text/plain";
            root     /root/cerbot/;
    }

证书颁发机构会向网站发送HTTP请求,其中包含了一段随机字符串(即挑战)。nginx配置中需要创建一个 .well-known/acme-challenge路径配置,并将该随机字符串保存到该目录下的一个文件中。证书颁发机构将使用HTTP 协议从网站中获取这个文件,验证你的网站控制权是否有权颁发或续订证书。

如果缺少该配置或者配置不正确,无法生成证书或者证书续期。

3.生成证书并配置https协议监听

证书生成我们使用免费的Let's Encrypt工具。Let's Encrypt 的 SSL/TLS 证书是完全免费的,使用过程也很简单。你只需要在 Let's Encrypt 官网上输入自己的域名,然后下载、安装 Let's Encrypt 的签发工具 Certbot,并按照指引完成证书的颁发和部署即可。

与其他商业机构颁发的 SSL/TLS 证书不同,Let's Encrypt 的证书具有以下特点:

  • 完全免费:Let's Encrypt 的证书完全免费,且不受颁发次数或证书有效期限制。
  • 自动化:Let's Encrypt 的证书支持自动化颁发和更新,无需人工干预。
  • 开放性:Let's Encrypt 的证书可以在任何地方免费获取和使用,没有国家或组织的限制。
  • 安全性:Let's Encrypt 的证书基于 SHA-2 和 2048 位 RSA 密钥颁发,具有与其他商业机构同等的安全性。

安装证书生成工具:

代码语言:javascript
代码运行次数:0
运行
复制
#创建证书根目录
mkdir -p /root/cerbot
#修改目录权限,可读可写可执行
chmod 777 /root/cerbot
#安装相关驱动
rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
#安装cerbot工具
yum install -y certbot

生成证书:

代码语言:javascript
代码运行次数:0
运行
复制
certbot certonly --webroot -w /root/cerbot -d test.xxx.net

生成的证书在/etc/letsencrypt/live/域名 这个目录:

监听443端口并配置证书:

代码语言:javascript
代码运行次数:0
运行
复制
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/test.xxx.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/test.xxx.net/privkey.pem;

重新加载配置并访问域名.

ssl证书生成了且能够正常访问了。

三、证书续期

免费证书的好处是不用花钱买,坏处是有效期短,对于Let's Encrypt生成的免费证书,有效期是3个月,那么如果证书到期了客户端链接会变成不安全链接,并且有些公网回调会调不通,这是非常致命的。

那么有没有一种方式,既能免费,又能自动续期呢?

cerbot工具提供了renew命令来做证书续期:

代码语言:javascript
代码运行次数:0
运行
复制
certbot renew --webroot -w /root/cerbot

运行该命令将检查所有到期的证书,并尝试根据需要更新续期;如果想只检查和续期某个域名,则可以使用-d命令指定域名:

代码语言:javascript
代码运行次数:0
运行
复制
certbot renew --webroot -w /root/cerbot -d test.xxx.net

如果想要做到自动化更新证书,可以基于linux自带的自动化任务crontab配合certbot命令实现。

代码语言:javascript
代码运行次数:0
运行
复制
#编辑任务
crontab -e


# 每天凌晨执行一次检查续期
0 0 * * * /usr/bin/certbot renew -w /root/cerbot >> /var/log/certbot-renew.log


#重启调度是任务生效
service crond restart

这里crontab任务告诉系统在每天凌晨0点自动运行 /usr/bin/certbot renew命令自动检查续期ssl证书,并将结果写入/var/log/certbot-renew.log 文件中。

这样Certbot将在每天凌晨自动检查证书是否需要更新并进行更新。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PersistentCoder 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、背景
  • 二、证书生成与配置
  • 三、证书续期
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档