前言
网上有很多将 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 容器
成功效果如下
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于