记录一下SSL证书相关的坑
本文最后更新于 396 天前,其中的信息可能已经有所发展或是发生改变。

aria2后端rpc设置ssl证书踩的坑

用nginx反向代理ariaNG前端时,连接后端rpc服务时要求协议必须为https或者ws,由于aria2前端后端放在同一台vps上,在反向代理rpc服务时遇到一些麻烦,最后找到的解决办法是增加一个location块:

 location ^~ /jsonrpc {
          proxy_http_version 1.1;
          add_header Front-End-Https on;
          proxy_set_header Connection "";
          proxy_set_header Host $http_host;
          proxy_set_header X-NginX-Proxy true;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_pass http://127.0.0.1:6800/jsonrpc;
          proxy_pass_header X-Transmission-Session-Id;
      }

最终的nginx配置如下:

    server {
      listen 443 ssl http2;
      listen [::]:443 http2;
        ssl_certificate       /<path>/.crt;
        ssl_certificate_key   /<path>/.key; #<path>换成你自己域名的证书文件路径
        ssl_protocols         TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_ciphers           TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5;
        server_name xxx.com; #自行替换域名
        index index.html index.htm;

        # Config for 0-RTT in TLSv1.3
        ssl_early_data on;
        ssl_stapling on;
        ssl_stapling_verify on;
        add_header Strict-Transport-Security "max-age=31536000";

     location ^~ /jsonrpc {
          proxy_http_version 1.1;
          add_header Front-End-Https on;
          proxy_set_header Connection "";
          proxy_set_header Host $http_host;
          proxy_set_header X-NginX-Proxy true;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_pass http://127.0.0.1:6800/jsonrpc;
          proxy_pass_header X-Transmission-Session-Id;
      }

      location /
        {
          proxy_pass  http://127.0.0.1:6880; # 转发规则
          proxy_set_header Host $proxy_host; # 修改转发请求头,让6080端口的应用可以受到真实的请求
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # Config for 0-RTT in TLSv1.3
        proxy_set_header Early-Data $ssl_early_data;

          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "upgrade";
        }
}
    server {
        listen 80;
        listen [::]:80;
      server_name xxx.com; #换成你自己的域名
      return 301 https://xxx.com$request_uri;#同上
    }

同时aria2配置文件也要进行相应的修改,首先把证书文件上传到aria2配置文件的同级文件夹,然后修改如下:

# 启用加密后必须使用 https 或者 wss 协议连接
# 不推荐开启,建议使用 web server 反向代理,比如 Nginx、Caddy ,灵活性更强。
rpc-secure=true

# 在 RPC 服务中启用 SSL/TLS 加密时的证书文件(.pem/.crt)
rpc-certificate=/<path>/.pem

# 在 RPC 服务中启用 SSL/TLS 加密时的私钥文件(.key)
rpc-private-key=/<path>/.key

其中path替换成你的配置文件路径以及修改正确的证书名称

注意
证书文件一定要为.pem格式,本人亲测.crt格式会有莫名奇妙的错误导致前端连不上后端rpc服务,这个导致我花了很多额外的时间

将.crt的ssl证书文件转换成.pem格式

openssl x509 -in hoshibu.crt -out hoshibu.pem

重启nginx后打开ariaNG前端页面,在ariaNG设置那里填上你反向代理的域名+端口6800+后面默认的jsonrpc就能链接上了。(截图以后补)

使用acme签发zerossl证书的坑

简单来说,更换vps后之前的EABKEY就不能用了,在https://app.zerossl.com/developer重新申请EABKEY,然后设置:

acme.sh  --register-account  --server zerossl \
        --eab-kid  你的eab-kid \
        --eab-hmac-key  你的eab-hmac-key

然后就能签发证书了。(截图以后一定补)

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇