Debian
帶有 apache 和 nginx 的 ssl
我為靜態網站和電子郵件伺服器執行 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
.
我改為遵循本指南,這對我解決問題很有幫助。