前言
网上有很多将 http 升级为 https 的教材,在折腾了无数次后,我也成功将我的 http 升级为 https,所以写一篇帖子记录一下,希望可以帮到大家。
前置条件
- 拥有自己的域名
- 一台服务器,并将域名解析到服务器上
- 一定的 linux 基础和 docker 基础,至少能跟着敲
- 本教程基于 Centos7.*
使用 docker 安装 nginx,并配置好相关配置文件,确保能够正常访问
特别提醒:
- 启动的 nginx 需要监听 443 端口,因为 443 端口是 https 所需的端口
- 能够自由修改配置文件
- 最后单独放置一个文件用来存储 ssl 证书,比如:
-v /docker-data/nginx/ssl:/ssl/ #证书上传到服务器上的/docker-data/nginx/ssl目录下即可
申请一个 SSL 证书
网上有很多可以免费申请的地方,我的证书是在腾讯云申请的,跟进相应提示正确下载即可。
配置 nginx 文件
打开 nginx 的配置文件,根据实际情况(有可能是 nginx 文件下的 nginx.conf,也有可能是 conf.d 下的 default.conf)
server
{
#listen 80;
# 需要同时打开https与htt时开启
listen 443 ssl;
server_name www.jinjianh.com jinjianh.com;
# 换成你的域名
ssl on;
# 需要同时打开https与htt时注释掉
ssl_certificate /ssl/1_www.jinjianh.com_bundle.crt;
# 换成你的证书对应地址
ssl_certificate_key /ssl/2_www.jinjianh.com.key;
# 换成你的证书对应地址
# 下面的部分不用改
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
# 换成你的项目地址
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
# 这里是一些其它配置项
}
如果需要只能访问 https 的话,需要将
listen 80
注释掉和ssl on
打开,并新增如下配置
server{
listen 80;
server_name jinjianh.com www.jinjianh.com;
rewrite ^(.*) https://$host$1 permanent;
}
保持配置,重启 nginx,使用 docker 启动的 nginx 一开始没有监听 443 端口的话会失败,重新打开一个监听 443 端口的 nginx 容器
成功效果如下
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于