我正在为静态网站和电子邮件服务器运行 nginx,并为远程 debian 10 服务器上的 nextcloud 实例运行 apache2。
我想两者都使用 ssl。我已经将 apache2 设置为监听端口 8443 而不是 443(用于 ssl)和 8080(而不是 80)用于 http。
certbot
我在两台服务器上都申请成功了。
但是,如果我现在去https://nextcloud.mydomain.com(apache 所在的位置),我仍然收到“警告:前方潜在的安全风险”。测试用这个网站显示:我使用 nginx 运行的站点是证书有效的站点。我猜这是因为 https 前缀导致我的浏览器请求端口 443,而不是 8443。
我该如何解决这个问题?
相关文件内容:
/etc/nginx/sites-available/mysite
:
server {
root /path/to/website;
index index.html index.htm ;
server_name mydomain.com www.mydomain.com ;
location / {
proxy_pass http://localhost:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
try_files $uri $uri/ =404;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = www.mydomain.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = mydomain.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 ;
listen [::]:80 ;
server_name mydomain.com www.mydomain.com ;
return 404; # managed by Certbot
}
/etc/apache2/ports.conf
:
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
Listen 8080
<IfModule ssl_module>
Listen 9000
</IfModule>
<IfModule mod_gnutls.c>
Listen 8443
</IfModule>
<IfModule mod_ssl.c>
Listen 8443
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
我将上面的端口 ssl_module 更改为 9000,因为将它们全部设置为 8443 给了我一个错误。
/etc/apache2/sites-available/000-default.conf
和的开始/etc/apache2/sites-available/nextcloud.conf
:
<VirtualHost *:8080>
[...]
/etc/apache2/sites-available/default-ssl.conf
和的开始/etc/apache2/sites-availble/nextcloud-le-ssl.conf
:
<IfModule mod_ssl.c>
<VirtualHost *:8443>
[...]
所有 4 个文件都有一个符号链接/etc/apache2/sites-enabled
。
答案1
我跟着本指南相反,这对我解决问题很有帮助。