Ubuntu Nginx 配置https免费SSL证书安全环境
Madman 后端工程师

前言

有时候在某些开发场景必须需要用到https安全环境来测试,比如FB的登录sdk调试,FB的App LinksPWA的调试等等。那我们就需要搭建一个https安全环境,这种情况我有两种解决方案。

  1. mkcert本地生成免费安全证书
  2. 七牛云或者阿里云白嫖免费安全证书

第1种本地生成的证书只能在自己电脑上信任证书来确保https安全环境为绿色,在其他设备上会显示https不安全。
要使用公网认证的https就用第2种方式,去白嫖SSL安全证书,第2钟方式要有几个前提条件

  • 自己拥有ECS云服务器(这个阿里与好像也有能白嫖的低配机器)
  • 自己拥有一个域名(去阿里云购买非特殊域名也不贵几块钱一年)
  • 注册七牛云账户去0元购买SSL免费证书
  • 还有就是你需要基本熟悉Linux操作命令

我下面主要介绍第2种方案,想要实现第1种方案的可以去查看mkcert的文档

七牛云购买免费证书

购买免费证书

没有七牛云的朋友我推荐大家去注册一下,特别接地气的云服务商。
https://s.qiniu.com/ZfumU3

登录注册七牛云购买免费SSL证书

注册登录后点击左上角菜单栏 > SSL证书 > 购买证书 > 选择证书品牌(TrustAsia)> DV域名型

购买成功后补全信息

补全信息

DNS验证域名

因为不能随便填别人的域名添加SSL证书配置,所以需要验证域名所有权确认域名是你的。
DNS验证域名

按照SSL订单详情给的TXT记录值,去添加TXT域名解析用来验证域名所有权
DNS验证域名

在阿里云控制台域名解析添加完TXT记录值,再回来七牛云的SSL订单详情页 点击检测验证结果,一般1分钟都不要就通过了。
DNS验证域名

下载证书并导入阿里云ECS服务器

在七牛云SSL证书服务/证书管理列表 下载刚刚验证完的证书文件。
下载证书

使用scp命令把证书文件上传到ECS服务器

1
2
scp ~user/ssl/xxx.com.zip root@47.244.10.110:/usr/local/cert
scp 要上传的文件名 ECS主机用户@ECS主机公网ip:要上传到ECS主机的目录

新增Nginx配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
server {
listen 80;
server_name app.patpat.link;
# 80端口重定向到 https 443
location / {
return 301 https://$server_name$request_uri;
}
}

server {
listen 443 ssl;
server_name app.patpat.link;

error_log /var/log/nginx/app_link_error.log;
access_log /var/log/nginx/app_link_access.log;

# ssl验证相关配置
ssl on;
ssl_certificate /usr/local/cert/app.patpat.link.crt; # 证书路径配置
ssl_certificate_key /usr/local/cert/app.patpat.link.key; # 证书key路径配置

#ssl_session_timeout 5m; #缓存有效期
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; #安全链接可选的加密协议
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; #加密算法
ssl_prefer_server_ciphers on;

root /var/www/app-link/dist; # 网站根目录配置

location / {
#vue router configure
try_files $uri $uri/ /index.html;
}
}

配置阿里云ECS安全组端口443规则

上面的配置往访问域名你会发现http能正常重定向到https了,但是到了https的请求,请求一直没响应。
请求一直没响应

然后用curl命令访问发现报错 port 443: Connection timed out
curl命令访问发现报错

这个时候就是最后一步配置了。ECS云服务器安全组端口规则配置,可参考下面这篇文章。
https://blog.csdn.net/Alen_xiaoxin/article/details/104853828
阿里云ECS允许公网通过HTTP、HTTPS等服务访问实例如何配置?
ECS允许443

阿里云ECS安全组规则入口:云服务器 ECS > 网络云安全 > 安全组 > 创建安全组 或者 在现有安全组配置规则 配置入方向

添加安全组规则
ECS允许443

OK 现在去访问你的域名就是绿色的https安全环境了,可以愉快的开发调试了。

  • 本文标题:Ubuntu Nginx 配置https免费SSL证书安全环境
  • 本文作者:Madman
  • 创建时间:2021-02-19 11:38:42
  • 本文链接:https://www.patpat.site/开发/后端/Ubuntu-Nginx-配置免费https-SSL-安全环境.html
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论