前言
也可以说是为了折腾,还有一些功能上需要的原因,需求实现网站HTTPS访问。现在将具体实现的过程整理如下,以便于回顾和学习!如有不完善或者缺陷的地方,请指正。

一、目前本站的大致架构
公网服务器(Nginx+FRP+静态页面等) <------穿透公网------> 家庭群晖服务器(在群晖上部署Typecho,图床等服务)

二、申请免费证书

  1. 到各大运营商申请免费证书,本文以腾讯为例。申请地址:cloud.tencent.com
  2. 申请完成,后提交资料,通过审核后如下:证书申请
  3. 下载证书,解压证书解压证书

二、将证书上传至公网服务器(用于Nginx使用)
将证书上传至服务器目录/etc/ssl/nginx(如果目录不存在,请新建立一个)

[root@VM-0-2-centos nginx]# pwd
/etc/ssl/nginx
[root@VM-0-2-centos nginx]# ll
total 12
-rw-r--r-- 1 root root 3765 Jan 23 21:58 1_collick.xyz_bundle.crt
-rw-r--r-- 1 root root 1704 Jan 23 21:58 2_collick.xyz.key
-rw-r--r-- 1 root root 1002 Jan 23 21:58 collick.xyz.csr

三、将证书上传至群晖服务器(用于FRP客户端使用)
关于如何上传文件至群晖的指定目录,请参阅FRP安装配置的FRP客户端在群晖上的安装过程。

  1. 将获取到的证书解压后,将Nginx目录中证书上传至群晖目录
  2. 使用远程工具CRT、Putty登陆群晖后台,将证书拷贝至FRP客户端目录

    root@Mydsm:/volume1/Share/FRP# pwd
    /volume1/Share/FRP
    root@Mydsm:/volume1/Share/FRP#
    root@Mydsm:/volume1/Share/FRP#
    root@Mydsm:/volume1/Share/FRP# ll
    total 16756
    d---------+ 1 admin users     244 Jan 24 18:15 .
    d---------+ 1 root  root      210 Jan 24 10:14 ..
    ----------+ 1 admin users    3765 Jan 24 18:12 1_collick.xyz_bundle.crt
    ----------+ 1 admin users    1704 Jan 24 18:12 2_collick.xyz.key
    ----------+ 1 admin users   19489 Jan 24 18:12 collick.xyz.zip
    ----------+ 1 admin users 8571275 Dec 19 13:26 frp_0.34.3_linux_amd64.tar.gz
    ----------+ 1 admin users 8556141 Dec 21 20:59 frp_0.34.3_windows_amd64.zip
    d---------+ 1 admin users      24 Dec 19 23:02 frpclient
    root@Mydsm:/volume1/Share/FRP# cp ./1_collick.xyz_bundle.crt 2_collick.xyz.key  /frp/
    root@Mydsm:/volume1/Share/FRP#
    root@Mydsm:/volume1/Share/FRP#
    root@Mydsm:/volume1/Share/FRP# cd /frp/
    root@Mydsm:/frp# ll
    total 9692
    drwxr-xr-x  2 root root    4096 Jan 24 18:18 .
    drwxr-xr-x 23 root root    4096 Jan  6 20:24 ..
    ----------  1 root root    3765 Jan 24 20:51 1_collick.xyz_bundle.crt
    ----------  1 root root    1704 Jan 24 20:51 2_collick.xyz.key
    -rwxr-xr-x  1 root root 9887744 Dec 19 23:03 frpc
    -rwxr-xr-x  1 root root     562 Jan 24 18:17 frpc.ini
    -rwxr-xr-x  1 root root     271 Jan 24 16:28 frpc.ini.bak
    -rw-rw----  1 root root    1964 Jan 24 17:46 frpc.log
    -rwxr-xr-x  1 root root      53 Jan 22 20:57 frpc.sh
    -rw-------  1 root root    2014 Jan  1 22:42 nohup.out

三、修改Nginx的配置文件

  1. 我的Nginx的配置文件在/nginx/conf目录下

    [root@VM-0-2-centos conf]# pwd
    /nginx/conf
    [root@VM-0-2-centos conf]# ll
    total 40
    -rw-r--r-- 1 1001 1001 1077 Dec 15 22:41 fastcgi.conf
    -rw-r--r-- 1 1001 1001 1007 Dec 15 22:41 fastcgi_params
    -rw-r--r-- 1 1001 1001 2837 Dec 15 22:41 koi-utf
    -rw-r--r-- 1 1001 1001 2223 Dec 15 22:41 koi-win
    -rw-r--r-- 1 1001 1001 5231 Dec 15 22:41 mime.types
    -rwxr-xr-x 1 root root  691 Dec 23 22:06 nginx.conf
    -rw-r--r-- 1 1001 1001  636 Dec 15 22:41 scgi_params
    -rw-r--r-- 1 1001 1001  664 Dec 15 22:41 uwsgi_params
    -rw-r--r-- 1 1001 1001 3610 Dec 15 22:41 win-utf
    [root@VM-0-2-centos conf]#
  2. 或者通过以下命令查询生效的配置文件位置

    [root@VM-0-2-centos objs]# ./nginx -t
    nginx: the configuration file /nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /nginx/conf/nginx.conf test is successful
  3. 修改配置文件(请根据需求修改)

    [root@VM-0-2-centos conf]# cat nginx.conf
    worker_processes  1;
    events {
    worker_connections  1024;
    }
    
    http {
    server {
    #listen 80;
    listen       443 ssl;
    server_name www.collick.xyz;
    #从腾讯云获取到的第一个文件的全路径
    ssl_certificate /etc/ssl/nginx/1_collick.xyz_bundle.crt;
    #从腾讯云获取到的第二个文件的全路径
    ssl_certificate_key /etc/ssl/nginx/2_collick.xyz.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 / {
                         proxy_pass  http://127.0.0.1:8080;  #8080端口位FRP服务的服务端口
                         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                         proxy_set_header Host $http_host;
                         proxy_set_header X-NginX-Proxy true;
                         proxy_http_version 1.1;
                         proxy_set_header Upgrade $http_upgrade;
                         proxy_set_header Connection "upgrade";
                         proxy_max_temp_file_size 0;
                         proxy_redirect off;
                         proxy_read_timeout 240s;
    
                 }
    
                 error_page   500 502 503 504  /50x.html;
                 location = /50x.html {
                         root   /nginx/html;
                 }
         }
    
         server{
         listen 80;
         server_name www.collick.xyz;
         rewrite ^/(.*)$ https://www.collick.cn:443/$1 permanent;
         }
    }
  4. 修改完成后重新加载配置文件

    [root@VM-0-2-centos sbin]# pwd
    /nginx/sbin
    [root@VM-0-2-centos sbin]#
    [root@VM-0-2-centos sbin]#
    [root@VM-0-2-centos sbin]# ./nginx -s reload    #使用命令重新加载配置文件

四、FRPS服务端的安装配置
请参阅FRP安装配置

五、FRPC客户端配置证书
登陆群晖后台,进入frp目录(详情参阅FRP安装配置
配置文件如下(重新启动一次客户端服务):

root@Mydsm:/frp# 
root@Mydsm:/frp# cat  frpc.ini
[common]
server_addr = collick.xyz
server_port = 7000
#你的FRPS服务器设定的密码
token = www.collick.xyz

[www_htts2http]
type = https
custom_domains = www

plugin = https2http
plugin_local_addr = 127.0.0.1:80

# HTTPS 证书相关的配置
plugin_crt_path = ./1_collick.xyz_bundle.crt
plugin_key_path = ./2_collick.xyz.key
plugin_host_header_rewrite = 127.0.0.1
plugin_header_X-From-Where = frp

六、群晖服务器证书新增

  1. 将申请的Apache证书导入至群晖

私钥:选择您之前保存在计算机中的 server.key 文件
证书:选择您从认证机构收到的签发证书。文件名应类似于 yourdomainname.crt。
中间证书:此为可选填项目。如果认证机构提供了中间凭证,请在此导入。

  1. 配置导入的证书
    以下红框部分,来自群晖web station的虚拟主机配置(后期会补充一个群晖安装typecho的文档)

七、Typecho配置部分

  1. 登陆后台设置-基本设置,将站点地址修改成https
  2. 下载插件TEDUriReplace
    下载地址:点击跳转

此插件的功能主要用于前期使用http时产生的页面的部分地址会延续使用http开头的链接地址,当时用浏览器访问时,浏览器会报以下错误:
不安全提示

  1. 开启HTTPS
    编辑站点根目录下的config.inc.php文件,添加下面的配置:
/** 开启HTTPS */
define('__TYPECHO_SECURE__',true);


最后修改:2023 年 04 月 26 日
如果觉得我的文章对你有用,请随意赞赏