前言
因为我写了一个开源的管理系统,为了搭配小程序使用所以得给服务器配置域名和HTTPS。
在这里默认大家已经申请好了域名,并且已经配置好了DNSPod解析地址。(如果不会请自行百度)
注意:配置HTTPS前,请先将域名通过备案审核否则https无法通过外部IP访问。
一、进入域名管理
如果使用的腾讯云,[点击这里](https://console.cloud.tencent.com/domain)可以查看自己的域名状态;
点击箭头所指的解析按钮,进入DNSPod解析页面。
红色框中的解析地址请自行配置,在这里不做详细介绍。正确配置DNSPod解析后,点击任意一个SSL按钮,进入SSL证书页面。
二、申请SSL证书
点击我的证书,免费申请证书,选择免费版证书。
填写申请的域名和邮箱,选择自动添加DNS验证
如果DNS解析正常,则直接点击查看域名验证状态,验证通过之后等待几分钟机构签发证书。(DNS解析参考图二)
三、下载证书
证书签发通过之后,可以看到证书多了一条记录,点击下载。
使用Nginx做转发,所以下载Nginx版本。
压缩包解压之后,会得到四个文件,我们使用 .key 和 .crt结尾的文件。(不同的域名,下载下来的myWebsite会不同)
四、配置SSL证书
配置SSL证书可以参考腾讯的Nginx 服务器 SSL 证书安装部署
- 将解压后文件拷贝到 nginx根目录下的conf文件夹下的 ssl,如果没有ssl文件夹,请自行创建。
- 编辑nginx.conf内容:
server {
# 由于版本问题,配置文件可能存在不同的写法。
# 例如:Nginx 版本为 nginx/1.15.0 以上使用 listen 443 ssl 代替 listen 443 和 ssl on。
listen 443 ssl;
# server_name 替换成自己的域名
server_name www.ktkyio.xyz ktkyio.xyz;
# 因为地址默认到nginx.conf同级目录,所以直接使用 ssl/文件名
# 注意:ssl 文件夹前不要加 /或者./ !!!
ssl_certificate ssl/myWebsite.crt;
ssl_certificate_key ssl/myWebsite.key;
ssl_session_timeout 5m;
# 请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
# 请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
# 转发的地址,根据自己具体情况配置。
# 因为我的项目是node启动的服务所以使用ip+端口
location /{
proxy_pass http://127.0.0.1:8099/;
}
}
server {
listen 80;
#server_name 替换成自己的域名
server_name www.ktkyio.xyz ktkyio.xyz;
# 为了保证默认转发到htpps,所以在这里设置重定向
return 301 https://$host$request_uri;
}
- 保存,重启nginx,在地址栏 输入域名。