在前面我们给群晖的应用添加了域名,在外网可以用域名访问 Heimdall 导航页,Halo 博客等,但是都是通过 HTTP 访问的。即使你能忍受浏览器上显示的 “不安全”,有时候一些应用也不可避免的需要使用 HTTPS,比如 Bitwarden,不通过 HTTPS 不允许注册。
一、前提条件
博主有一台腾讯云的轻量服务器,拥有一个songshiyu.cn的域名,本博客部署在本地的一台黑群晖中,已经通过内网穿透以及反向代理实现了外网访问,但是每次用域名访问的时候会有不安全的显示,如下图:
我们的目的就是,在浏览器无论输入 songshiyu.cn 还是 http://songshiyu.cn 都会自动转跳到 https://songshiyu.cn 并正常显示:
二、腾讯云下载证书
进入DNSPod的控制台:https://console.dnspod.cn/ ,可以查看到目前绑定在腾讯云上的域名,点击SSL:

选择免费证书:

填写对应的域名和邮箱,设置保持默认:

审核通过后,根据提示下载证书并解压:

三、上传证书并修改 nginx 配置文件
- 找到 nginx 的安装目录,将证书存放至 路径/nginx/ssl 下,我这里是 /www/server/nginx/ssl/
- 修改 ngxin/conf/ngxin.conf 文件,我这里使用的是 finalshell 上传和编辑。
- 在 http 块下添加下面的代码:
server {
listen 80;
server_name songshiyu.cn;
return 301 https://$host$request_uri; # 这句是重定向到 https
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
以及:
server {
listen 443 ssl;
server_name 你的域名;
ssl_certificate /www/server/nginx/ssl/你的域名_bundle.pem; # 此处是路径
ssl_certificate_key /www/server/nginx/ssl/你的域名.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http:访问的ip:端口;
}
}
- 保存好后重启nginx
nginx -s stop
nginx
大功告成!