Nginx + FRP + 群晖 + Typecho配置证书实现HTTPS访问

Nginx + FRP + 群晖 + Typecho配置证书实现HTTPS访问

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

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

二、申请免费证书

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

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

[[email protected] nginx]# pwd
/etc/ssl/nginx
[[email protected] 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客户端目录

    [email protected]:/volume1/Share/FRP# pwd
    /volume1/Share/FRP
    [email protected]:/volume1/Share/FRP#
    [email protected]:/volume1/Share/FRP#
    [email protected]:/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
    [email protected]:/volume1/Share/FRP# cp ./1_collick.xyz_bundle.crt 2_collick.xyz.key  /frp/
    [email protected]:/volume1/Share/FRP#
    [email protected]:/volume1/Share/FRP#
    [email protected]:/volume1/Share/FRP# cd /frp/
    [email protected]:/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目录下

    [[email protected] conf]# pwd
    /nginx/conf
    [[email protected] 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
    [[email protected] conf]#
    
  2. 或者通过以下命令查询生效的配置文件位置

    [[email protected]-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. 修改配置文件(请根据需求修改)

    [[email protected] 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. 修改完成后重新加载配置文件

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

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

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

[email protected]:/frp# 
[email protected]:/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开头的链接地址,当时用浏览器访问时,浏览器会报以下错误:
    不安全提示

  3. 开启HTTPS
    编辑站点根目录下的config.inc.php文件,添加下面的配置:

    /** 开启HTTPS */
    define('__TYPECHO_SECURE__',true);
-> 加入科技玩家交流群组:点击加入 <-
注意:
1.文中二维码和链接可能带有邀请性质,请各位玩家自行抉择。
2.请勿通过链接填写qq号与密码、银行卡号与密码等个人隐私信息。
3.禁止纯拉人头,拉app注册等信息,发现必小黑屋。
4.同一种信息仅发一次,多发会被删除。
5.文章中源码或APP等,无法保证其绝对安全,需自行辨别。
6.文章关联方不想展示也可以微信站长“socutesheep”删除。
本文由 @collick 发布。如若转载,请注明出处: 科技玩家 » Nginx + FRP + 群晖 + Typecho配置证书实现HTTPS访问

给TA买糖
共{{data.count}}人
人已买糖
教程玩家投稿精选文章

GitHub 代码实时同步 gitee 和 coding

2022-2-10 12:43:53

学习笔记精选文章

Rclone挂载群晖Webdav轻松实现和云盘同步!

2022-2-10 22:50:52

46 条回复 A文章作者 M管理员
贴心提醒
请认真对待作者付出,勿发表无意义言论,触发过滤规则的评论将无法提交,包含敏感词的评论会自动变成待审核状态哦。
  1. Siaotien

    感谢分享

  2. DragonTang

    赛高!

  3. DragonTang

    牛逼,这么优秀哈哈

  4. DragonTang

    感谢大佬,成功了~

    • collick

      有博客不,地址发一下!

  5. LAzySleep

    继续加油哦,争取发表更多优秀帖子

  6. xiaozhi24

    挺详细的

  7. seatom

    继续加油哦,争取发表更多优秀帖子

  8. LAzySleep

    又学习到了,写的非常好😁

  9. WeiWei

    继续加油哦,争取发表更多优秀帖子

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索