0

我正在尝试建立一个有两个网站的服务器,一个是我的 Angular+Spring Boot 服务器,另一个是 BTCPay 服务器。每个都有不同的域名。
在 BTCPay 服务器中,设置了这些环境变量:

export BTCPAY_HOST="btcpay.YourDomain.com"
export NBITCOIN_NETWORK="mainnet"
export BTCPAYGEN_CRYPTO1="btc"
export BTCPAYGEN_CRYPTO2="ltc"
export BTCPAYGEN_REVERSEPROXY="nginx"
export BTCPAYGEN_LIGHTNING="clightning"

总之,443端口已经被BTCPay服务器占用了,这个过程我几乎没有配置过

起初,我认为这没什么大不了的,我只需要将我的另一台服务器放在另一个端口 1880 用于 HTTP 和 3443 用于 HTTPS。但是切换端口后,Letsencrypt 证书不会通过任何验证,浏览器都开始给我警告:

The certificate is not trusted because it is self-signed.
 
Error code: MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT

根据其他一些网上资源,使用Nginx的SSL连接必须采取443来验证证书,所以我的合法证书没有正确验证,这是造成问题的原因。
有人可以帮我解决这个问题吗?
我有没有办法通过编辑 Nginx 配置来完成验证过程?

4

1 回答 1

0

官方文档其实已经有了这个问题的解决方案,虽然对我来说还不够清楚:BTCPay Server Document,在Can I use an existing Nginx server as a reverse proxy with SSL terminate? 部分。
配置您现有的 Nginx 配置文件,以在其中添加新的服务器部分。更改后,我出现了新问题:
端口 80 已占用:这是因为当前 BTCPay Server docker 正在尝试使用 80 作为传入端口,因此环境变量REVERSEPROXY_HTTP_PORT(反向代理绑定到的公共端口用于 HTTP 流量(默认: 80)) 需要更改。我把它改成了1880,所以在Nginx的配置文件中,proxy_pass http://127.0.0.1:10080;需要改成: proxy_pass http://127.0.0.1:1880;

进行此更改后,大多数问题都得到了解决,但是当我尝试访问https://www.example.com时,它会以错误代码 503 进行响应
这是因为BTCPAY_HOST环境变量已设置为"example.com"。为了解决这个问题,我选择在 Nginx 配置文件的服务器部分分隔“www.example.com”“example.com” ,因此https://www.example.com将被重定向到https://example.com

在此之后,服务器同时为原始服务器和 BTCPay 服务器工作,希望这将帮助其他遭受同样问题的人:D

于 2021-02-25T19:44:49.337 回答