Điểm:0

Thiết lập SSL cho cổng tùy chỉnh trong nginx - letsencrypt

lá cờ in

Tôi đang cố bật SSL trên một cổng tùy chỉnh (không phải 443), chạy một trang web. Từ việc tìm kiếm xung quanh, tôi không thể tìm thấy nhiều thông tin hữu ích.

Máy chủ có các cổng không thể thay đổi, bên ngoài: 26143, Bên trong: 80.

Để vào máy chủ (không có SSL), bạn sẽ nhập example.com:26143 và hệ thống sẽ xem đây là kết nối tới cổng 80.

Tôi làm cách nào để thiết lập chứng chỉ (cho phép mã hóa) để bật SSL trên cổng này?


Từ thử nghiệm, có vẻ như bất cứ điều gì tôi làm, nó chỉ truy cập máy chủ trên cổng 80, ngay cả khi tôi đặt nó thành 26143

đây là cấu hình hỗ trợ các trang web nginx:

người phục vụ {
    nghe 80;
    nghe [::]:80;

    gốc/gốc/html;

    chỉ số index.php;
    tên máy chủ _;

    địa điểm / {
        try_files $uri $uri/ =404;
    }

    vị trí ~ \.php$ {
        bao gồm đoạn trích/fastcgi-php.conf;
    
        # Với php-fpm (hoặc các ổ cắm unix khác):
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    vị trí ~ /\.ht {
        Phủ nhận tất cả;
    }

    vị trí /.well-known {
        gốc /var/www/ssl/example.com/;
    }
}

Các lệnh tôi đã thử là:

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

Một số điều chỉnh trở lại và thứ tư, lỗi phổ biến nhất mà tôi gặp phải là:

LƯU Ý QUAN TRỌNG:
 - Máy chủ báo các lỗi sau:

   Tên miền: example.com
   Loại: trái phép
   Chi tiết: Phản hồi không hợp lệ từ
   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 Không
   Đã tìm thấy</title>\n</head><body>\n<h1>Không tìm thấy</h1>\n<p"

   Để khắc phục những lỗi này, vui lòng đảm bảo rằng tên miền của bạn đã được
   đã nhập chính xác và (các) bản ghi DNS A/AAAA cho miền đó
   chứa (các) địa chỉ IP phù hợp.

404 là Không từ hệ thống của tôi, đó là từ example.com:80, thay vì example.com:26143. Ngoài ra, tôi không có quyền truy cập để sửa đổi bản ghi DNS.


Theo kinh nghiệm của tôi, cho phép mã hóa và SSL hơi khó hiểu và cùng với giới hạn tốc độ, tôi không thể khắc phục sự cố đủ để hiểu.

Tôi biết điều đó là có thể, tôi chỉ không biết làm thế nào và/hoặc tôi đang làm gì sai.

Bất kỳ trợ giúp sẽ được đánh giá cao

digijay avatar
lá cờ mx
Có vẻ như đã xảy ra chuyển hướng, vì thay vì thử thách acme, LE nhận được một tài liệu html có thông báo 404. Ngoài ra, IIRC LE chỉ hỗ trợ cổng 80 và 443 (https://serverfault.com/a/805681)
lá cờ in
Cổng 443 không liên quan, chỉ có cổng 80, vì đó là nơi cần có thử thách acme.
Điểm:1
lá cờ in

Thử thách mã hóa http-01 yêu cầu cổng 80 để trao đổi dữ liệu xác thực. Máy chủ https không bao giờ được sử dụng. Cổng 80 là một yêu cầu khó khăn. Nếu đó không phải là một tùy chọn, thì DNS là cách duy nhất khác.

Có những máy chủ thử nghiệm mà bạn nên sử dụng cho đến khi bạn thiết lập chính xác (ít giới hạn tốc độ hơn hoặc thậm chí có thể không có giới hạn), trước tiên sau đó bạn chuyển sang máy chủ sản xuất.

câu hỏi tương tự: https://community.letsencrypt.org/t/port-4434-instead-of-443/61349

Typewar avatar
lá cờ in
Cám ơn vì đã giải thích! Trong trường hợp này, đối với tình huống này, tôi đoán rằng tôi có thể sử dụng proxy bên ngoài trang web được kết nối với máy chủ để sử dụng cổng 80. Nhưng điều đó có thể chỉ hoạt động đối với tên máy chủ/miền của proxy, không phải nguồn gốc.
Typewar avatar
lá cờ in
Nhìn sâu hơn vào vấn đề, có vẻ như những gì tôi đang hỏi là không thể thực hiện được vào lúc này. https://github.com/certbot/certbot/issues/2697
lá cờ in
Như tôi đã viết trong câu trả lời, bạn cần mở cổng 80 và thêm phản hồi thử thách trên máy chủ http đó. Cổng nào bạn sử dụng sau đó không liên quan.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.