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

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
云服务器(按量付费),48vCPU 186GiB
简介: 收费证书是真的(赫赫)贵,搭建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;
}

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

目录
相关文章
|
17天前
|
应用服务中间件 网络安全 nginx
快速上手!使用Docker和Nginx部署Web服务的完美指南
快速上手!使用Docker和Nginx部署Web服务的完美指南
|
17天前
|
应用服务中间件 nginx
树莓派安装Nginx服务结合内网穿透实现无公网IP远程访问
树莓派安装Nginx服务结合内网穿透实现无公网IP远程访问
|
17天前
|
网络协议 应用服务中间件 Linux
在Redhat 9部署nginx服务
Nginx是一个高性能、开源的HTTP和反向代理服务器,以其异步非阻塞模型处理高并发,并具有轻量级、高可靠性、良好扩展性和热部署特性。在Redhat 9.2上安装nginx-1.24.0涉及安装依赖、下载解压、源码编译、配置环境变量及启动服务。安装步骤包括:yum安装依赖包,下载解压Nginx,运行configure脚本预编译,make && make install编译安装,然后赋权、配置环境变量,关闭防火墙和SELinux,最后启动Nginx并进行浏览器测试。
489 3
|
17天前
|
存储 Ubuntu 应用服务中间件
【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解
【Nginx】centos和Ubuntu操作系统下载Nginx配置文件并启动Nginx服务详解
29 1
|
3天前
|
缓存 安全 应用服务中间件
蓝易云 - Nginx的HTTPS部署与安全性能优化教程
以上就是在Nginx上部署HTTPS并进行安全性能优化的基本步骤。需要注意的是,这些步骤可能会根据您的具体需求和环境有所不同。
12 0
|
5天前
|
Windows
node搭建本地https和wss服务
node搭建本地https和wss服务
|
10天前
|
网络安全
https的证书错误,错误码-1012问题及解决方案
https的证书错误,错误码-1012问题及解决方案
20 0
|
17天前
|
小程序 应用服务中间件 Linux
【Nginx】微信小程序后端开发、一个域名访问多个服务
【Nginx】微信小程序后端开发、一个域名访问多个服务
30 0
|
17天前
|
安全 网络协议 应用服务中间件
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
|
17天前
|
负载均衡 网络协议 应用服务中间件
【亮剑】在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。
【4月更文挑战第30天】本文介绍了在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。HAProxy是一个高性能的开源TCP和HTTP负载均衡器,适合处理大量并发连接;Nginx是一个多功能Web服务器和反向代理,支持HTTP、HTTPS和TCP负载均衡,同时提供缓存和SSL功能;Keepalived用于监控和故障切换,通过VRRP实现IP热备份,保证服务连续性。文中详细阐述了如何配置这三个工具实现负载均衡,包括安装、配置文件修改和启动服务,为构建可靠的负载均衡系统提供了指导。