如何申请免费证书并基于Nginx搭建Https服务

本文涉及的产品
云防火墙,500元 1000GB
.cn 域名,1个 12个月
云解析 DNS,旗舰版 1个月
简介: 收费证书是真的(赫赫)贵,搭建https服务每年不花个千把块还弄不来,So跟博主一样缺钱的请看过来,教你如何申请免费证书,并基于Nginx搭建https服务。

收费证书是真的(赫赫)贵,搭建https服务每年不花个千把块还弄不来,So跟博主一样缺钱的请看过来,教你如何申请免费证书,并基于Nginx搭建https服务。
转载请注明出处:https://blog.lzoro.com,谢谢~

一、环境说明

阿里云ECS云服务器(centOS)一台(我真的不是打广告的)
lzoro.com域名一个
Nginx-1.9.9
浏览器

几个前提条件必须要满足,首先你要有自己的域名/服务器,如果没有的话,建议先准备一下。

二、步骤

1、申请证书

这里格子有一个免费申请证书的网站https://freessl.org/推荐一下,个人觉得挺好用的。

话不多说,撸起袖子。

首先,登录网站后,请先注册一个账号,目前注册十分简单,只需要邮箱即可。

注册freesll.org

注册完毕请先登录邮箱验证,然后登录freessl.org,就可以开始申请免费证书了。

填写域名


填写需要证书的域名

选择参数,这里格子从freessl.org摘录说明如下

关于域名验证的说明

CA 需要对您是否拥有该域名进行验证,这样才能给您颁发证书。这里有多种验证方式,您可以采用对您较为方便的方式进行。在进行下一步的同时,你将同意 Lets Encrypt service agreement 或 TrustAsia。如果您的网站有防火墙,请对 66.133.109.36 开放。如果您收到 504 网关超时,无法连接等其它错误, 请刷新页面重试;如果您有自己的CSR文件,可上传CSR文件之后进行手动验证。

文件验证(HTTP)

CA 将通过访问特定 URL 地址来验证您是否有改域名的所有权。因此,您需要下载给顶的验证文件,并上传到您的服务器。

DNS 验证

CA 将通过查询 DNS 的 TXT 记录来确定您对该域名的所有权。您只需要在域名管理平台将生成的 TXT 记录名与记录值添加到该域名下,等待大约 1 分钟即可验证成功。

FreeSSL借助 Trustasia 和 Let's Encrypt 提供的 API,以及使用 Web Cryptography API ,完全使用浏览器生成证书,期间不存在数据传输,如果浏览器不支持 Web Cryptography API,那么我们会从后端服务器生成证书,所以在此强烈建议您使用支持 Web Cryptography API 的浏览器。
选择相关参数

记录验证DNS的相关值


验证DNS

添加解析


添加DNS验证解析

生成并下载证书


生成证书并下载

至此,证书的申请就大功告成了。
注意私钥请妥善保存,freessl控制台不会帮你存在私钥,除非你自己上传。

2、安装配置证书

证书申请完毕后不安装你留着当传家宝吗。

本篇博客是基于Nginx进行证书配置,其他诸如IIS、Apache等其他服务器不在本文讨论范围,请移步搜索引擎~

所以,你需要一台装有Nginx的服务器,真巧,我有。

先把证书更名,并上传到服务器,格子这边存放路径如下

/usr/local/nginx/cert/lzoro.pem
/usr/local/nginx/cert/lzoro.key

进入配置文件所在目录

cd /usr/local/nginx/conf

编辑配置文件

vim nginx.conf

配置如下

server {
    listen 443 ssl;
    server_name blog.lzoro.com;
    ssl on;
    ssl_certificate ../cert/lzoro.pem;
    ssl_certificate_key ../cert/lzoro.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    # 下面root路径格子这边隐去了,各位需自行设置
    root ...;
    location /{
            index  index.html index.htm;
    }
    access_log /usr/local/nginx-1.9.9/logs/blog-https.access.log;
}

重新载入nginx

./sbin/nginx -s reload
# 如果上面的命令不起作用,也可以重启
./sbin/nginx -s stop
./sbin/nginx

当然,到这一步的话,https的配置就算是完成了,不过当你打开浏览器的美滋滋地敲入https://blog.lzoro.com的时候,可能会发现无法访问,先别着急心里奔腾某个神秘生物,你需要几个步骤来处理。

如果你用的是云服务器的话,无论是阿里云或者腾讯云亦或其他云,这些云服务器厂商基本上都会提供安全组配置的,所以你需要到你的云服务器控制台,针对该服务器进行安全组配置(说明白些,就是开放端口),配置完安全组之后,再访问一次。

what!还不行,我真的没逗你。还是上面那个根本原因,你配置了安全组之后,依旧无法访问的话,可能原因是你服务器也开启了防火墙。

判断防火墙状态

systemctl status firewalld

没错,出现下图状态证明你是开启了防火墙的,挺好,有安全意识。


防火墙状态

开放对应端口并重载防火墙

firewall-cmd --zone=public --add-port=443/tcp --permanent
systemctrl reload firewalld

再来一次,https://blog.lzoro.com,是不是可以了,收工。

什么,还不行。那你可能是遇到了格子没出现的问题,当然你可以搜索解决方案,也可以留言。

可以了,还不满足只有https访问是吗,想要兼容http访问,没问题。只要在上面的配置稍微修改即可。

server {
    listen 80;
    listen 443 ssl;
    server_name blog.lzoro.com;
    ssl off;
    ssl_certificate ../cert/lzoro.pem;
    ssl_certificate_key ../cert/lzoro.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    # 下面root路径格子这边隐去了,各位需自行设置
    root ...;
    location /{
            index  index.html index.htm;
    }
    access_log /usr/local/nginx-1.9.9/logs/blog-https.access.log;
}

无妨的话,点个喜欢呗,溜了溜了。

目录
相关文章
|
1月前
|
自然语言处理 大数据 应用服务中间件
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
64 5
|
14天前
|
负载均衡 前端开发 JavaScript
Nginx 代理多服务
以上是 Nginx 代理多服务的几种常见方式,在实际应用中,可以根据具体的业务需求和系统架构选择合适的代理方式,并结合其他 Nginx 的功能和配置来优化和完善系统的性能和功能。
|
19天前
|
Web App开发 算法 应用服务中间件
nginx开启局域网https访问
【10月更文挑战第22天】为了调试WebRTC功能,需要在局域网内搭建HTTPS协议。具体步骤包括:在已部署Nginx和安装OpenSSL的环境中生成私钥、证书签名请求和自签名证书;将生成的文件放置到Nginx的证书目录并修改Nginx配置文件,最后重启Nginx服务。注意,自签名证书不受第三方机构认可,如需正式使用,需向CA申请签名。
|
23天前
|
安全 网络安全 数据安全/隐私保护
政务单位IP地址https证书
政务单位IP地址HTTPS证书是一种专为只有IP地址而无域名的政务网站设计的数字证书,用于加密通信、确保数据安全并提升用户信任度。申请流程包括选择证书颁发机构、提交申请并验证、部署证书等步骤。证书有效期通常为一年或多年,需定期更新以确保安全性。
|
1月前
|
缓存 负载均衡 应用服务中间件
Nginx 实现一个端口代理多个前后端服务
【10月更文挑战第19天】Nginx 的强大功能不仅限于此,它还可以与其他技术和工具相结合,为我们的应用提供更强大的支持和保障。在不断发展的互联网时代,掌握 Nginx 的使用技巧将为我们的工作和生活带来更多的便利和效益。
|
1月前
|
安全 应用服务中间件 Shell
nginx配置https的ssl证书和域名
nginx配置https的ssl证书和域名
|
1月前
|
存储 网络安全 对象存储
缺乏中间证书导致通过HTTPS协议访问OSS异常
【10月更文挑战第4天】缺乏中间证书导致通过HTTPS协议访问OSS异常
90 4
|
1月前
|
应用服务中间件 Apache 开发工具
nginx服务企业应用
nginx服务企业应用
|
1月前
|
应用服务中间件 网络安全 nginx
nginx作为web服务以及nginx.conf详解
nginx作为web服务以及nginx.conf详解
|
1月前
|
安全 算法 量子技术
【HTTPS】中间人攻击和证书的验证
【HTTPS】中间人攻击和证书的验证
51 1