我正在嘗試在自訂連接埠上啟用 SSL(不是 443),運行網頁。透過搜索,我找不到太多有幫助的資訊。
伺服器有不可更改的端口,外部: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 [email protected] --webroot -w /root/html
certbot certonly --noninteractive --agree-tos --cert-name slickstack -d example.com:26143 -m [email protected] --webroot -w /root/html
certbot certonly --noninteractive --agree-tos --cert-name slickstack -d example.com --http-01-port 26143 -m [email protected] --webroot -w /root/html
certbot certonly --noninteractive --agree-tos --cert-name slickstack -d example.com --preferred-challenges http --http-01-port 26143 -m [email protected] --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 有點令人困惑,加上速率限制,我無法進行足夠的故障排除以理解。
我知道這應該是可能的,我只是不知道我怎麼做和/或做錯了什麼。
任何幫助,將不勝感激
答案1
讓我們加密 http-01 挑戰需要連接埠 80 來交換驗證資料。 https 伺服器從未被使用過。埠 80 是硬性要求。如果這不是一個選擇,那麼 DNS 是唯一的其他方法。
您應該使用一些測試伺服器,直到您的設定正確(較少的速率限制,甚至可能沒有限制),然後首先切換到生產伺服器。
類似問題:https://community.letsencrypt.org/t/port-4434-instead-of-443/61349