Nginx
在 nginx 中為自定義埠設置 SSL -letsencrypt
我正在嘗試在執行網頁的自定義埠**(不是 443)上啟用 SSL。**通過四處搜尋,我找不到太多有用的資訊。
伺服器有不可更改的埠,外部:26143,內部:80。
要進入伺服器(沒有 SSL),您需要輸入 example.com:26143,系統會將其視為與埠 80 的連接。
我將如何設置證書(讓加密)以在此埠上啟用 SSL?
從測試來看,好像不管我做什麼,它只訪問80埠上的伺服器,即使我將它設置為26143
這是啟用 nginx 站點的配置:
server { listen 80; listen [::]:80; root /root/html; index index.php; server_name _; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; # With php-fpm (or other unix sockets): fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; } location ~ /\.ht { deny all; } location /.well-known { root /var/www/ssl/example.com/; } }
我試過的命令是:
certbot --nginx -d example.com:26143 certbot certonly --standalone --preferred-challanges http -d example.com:26143 certbot certonly --standalone --preferred-challenges http -d example.com certbot certonly --standalone --preferred-challenges http --http-01-port 26143 -d example.com certbot certonly --nginx --preferred-challenges http --http-01-port 26143 -d example.com certbot certonly --noninteractive --agree-tos --cert-name slickstack -d example.com -m my@mail.com --webroot -w /root/html certbot certonly --noninteractive --agree-tos --cert-name slickstack -d example.com:26143 -m my@mail.com --webroot -w /root/html certbot certonly --noninteractive --agree-tos --cert-name slickstack -d example.com --http-01-port 26143 -m my@mail.com --webroot -w /root/html certbot certonly --noninteractive --agree-tos --cert-name slickstack -d example.com --preferred-challenges http --http-01-port 26143 -m my@mail.com --webroot -w /root/html
一些前後調整,我得到的最常見的錯誤是:
IMPORTANT NOTES: - The following errors were reported by the server: Domain: example.com Type: unauthorized Detail: Invalid response from https://example.com/.well-known/acme-challenge/ho73up1dR3KU4V37awccOw2T5xsSILWUM365ZnwVEN4 [159.81.xxx.xxx]: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>404 Not Found</title>\n</head><body>\n<h1>Not Found</h1>\n<p" To fix these errors, please make sure that your domain name was entered correctly and the DNS A/AAAA record(s) for that domain contain(s) the right IP address.
404不是來自我的系統,而是來自 example.com:80,而不是 example.com:26143。此外,我無權修改 DNS 記錄。
以我的經驗,讓加密和 SSL 有點令人困惑,再加上速率限制,我無法排除足夠的故障來理解。
我知道這應該是可能的,我只是不知道我做錯了什麼和/或做錯了什麼。
任何幫助,將不勝感激
讓我們加密 http-01 挑戰需要埠 80 來交換驗證數據。從未使用過 https 伺服器。埠 80 是硬性要求。如果這不是一個選項,那麼 DNS 是唯一的其他方式。
在設置正確(更少的速率限制,甚至可能沒有限制)之前,您應該使用測試伺服器,然後首先切換到生產伺服器。
類似的問題:https ://community.letsencrypt.org/t/port-4434-instead-of-443/61349