Điểm:0

HTTPS ngắt kết nối Socket.io

lá cờ ch

mô tả lỗi
Tôi có trong môi trường thử nghiệm của mình các chatbot Rasa đang chạy trong các thùng chứa docker.Chatbot's fronted là một tiện ích webchat của Botfront trong một trang web do Apache2 cung cấp trên cùng một máy chủ. Tôi cũng đã cài đặt Nginx làm proxy ngược để phục vụ các miền ảo của Apache. Chatbot hoạt động trực tiếp từ Apache http://testibotti2.omnia.fi:444/ và cũng thông qua proxy ngược http://testibotti2.omnia.fi/ nhưng khi sử dụng https thì không thành công, tức là không hiển thị tiện ích chatbot https://testibot1.omnia.fi/

môi trường của tôi

Phiên bản máy chủ: Apache/2.4.41 (Ubuntu)  
phiên bản nginx: nginx/1.18.0 (Ubuntu  
Ubuntu 18.04  
Docker phiên bản 20.10.9, bản dựng c2ea9bc  
docker-compose phiên bản 1.29.2, bản dựng 5becea4c  

tập tin cấu hình

Proxy ngược Nginx (Tôi đã nhận xét phần testibotti2 SSL cho mục đích thử nghiệm)

người phục vụ {

   #root /var/www/html/;
   #index index.html index.htm;

   server_name testibot1.omnia.fi;
   #server_name 127.0.0.1
   chỉ mục index.php index.html index.htm index.nginx-debian.html;
   gốc /var/www/public_html/testibot1;

   địa điểm \ {

   proxy_pass http://testibot1.omnia.fi:444;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $remote_addr;
   proxy_set_header Máy chủ lưu trữ $host;  
   # Tôi đã thử các tham số bên dưới nhưng không thành công
   #proxy_redirect tắt;
   #proxy_set_header X-Forwarded-Proto https;
   #proxy_set_header X-Forwarded-Proto $scheme;  
   # cũng những thông số này tôi đã thêm sau khi cài đặt SSL, không thành công
   proxy_http_version 1.1;
   proxy_set_header Nâng cấp $http_upgrade;
   proxy_set_header Kết nối "nâng cấp";

   }

   access_log /var/log/nginx/testibot1.fi_access.log;
   error_log /var/log/nginx/testibot1.fi_error.log;


   nghe 443 ssl; # được quản lý bởi Certbot
   ssl_certificate /etc/letsencrypt/live/testibot1.omnia.fi/fullchain.pem; # được quản lý bởi Certbot
   ssl_certificate_key /etc/letsencrypt/live/testibot1.omnia.fi/privkey.pem; # được quản lý bởi Certbot
   bao gồm /etc/letsencrypt/options-ssl-nginx.conf; # được quản lý bởi Certbot
   ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # được quản lý bởi Certbot

}

người phục vụ {

   #root /var/www/html/;
   #index index.html index.htm;

   server_name testibotti2.omnia.fi;
   #server_name 127.0.0.1
   chỉ mục index.php index.html index.htm index.nginx-debian.html;
   gốc /var/www/public_html/testibotti2;

   địa điểm \ {

   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $remote_addr;
   proxy_set_header Máy chủ lưu trữ $host;
   proxy_pass http://testibotti2.omnia.fi:444;
   }

   access_log /var/log/nginx/testibotti2.fi_access.log;
   error_log /var/log/nginx/testibotti2.fi_error.log;


# nghe 443 ssl; # được quản lý bởi Certbot
# ssl_certificate /etc/letsencrypt/live/testibot1.omnia.fi/fullchain.pem; # được quản lý bởi Certbot
# ssl_certificate_key /etc/letsencrypt/live/testibot1.omnia.fi/privkey.pem; # được quản lý bởi Certbot
# bao gồm /etc/letsencrypt/options-ssl-nginx.conf; # được quản lý bởi Certbot
# ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # được quản lý bởi Certbot

}

người phục vụ {
    if ($host = testibot1.omnia.fi) {
        trả lại 301 https://$host$request_uri;
    } # được quản lý bởi Certbot


   nghe 80;

   server_name testibot1.omnia.fi;
    trả lại 404; # được quản lý bởi Certbot


}

#người phục vụ {
# if ($host = testibotti2.omnia.fi) {
# trả lại 301 https://$host$request_uri;
# } # được quản lý bởi Certbot


#nghe80;

# tên_máy chủ testibotti2.omnia.fi;
# trả về 404; # được quản lý bởi Certbot


#}

Cấu hình tiện ích webchat botfront

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/lib/index.min.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
Testisaitti 1
<div id="webchat"></div>
<script>
  WebChat.default.init({
    showFullScreenButton: true,
    selector: "#webchat",
    initPayload: "/tervetuloa",
    customData: {"language": "fi"}, // arbitrary custom data. Stay minimal as this will be added to the socket
    socketUrl: "http://testibot1.omnia.fi:5006",
    socketPath: "/socket.io/",
    embedded: false,
    title: "AsPa botti",
    subtitle: "Testibotti 1",
    inputTextFieldHint: "Vastaa kysymyksiin",
    profileAvatar:"robot_icon.png",
    params: {"storage": "session"} // can be set to "local"  or "session". details in storage section.
  })
</script>

</body>
</html>  


Lỗi này tôi thấy trên cửa sổ gỡ lỗi của trình duyệt

Nội dung hỗn hợp: Trang tại '<URL>' đã được tải qua HTTPS, nhưng đã yêu cầu điểm cuối XMLHttpRequest '<URL>' không an toàn. Yêu cầu này đã bị chặn; nội dung phải được cung cấp qua HTTPS.

Nhật ký lỗi Nginx

paulii@vetbot7:/var/www/public_html/testibot1$ sudo tail -f /var/log/nginx/testibot1.fi_error.log
[sudo] mật khẩu cho paulii:
18/10/2021 10:04:50 [lỗi] 3469367#3469367: *60 open() "/var/www/public_html/testibot1/omnia.fi.db" không thành công (2: Không có tệp hoặc thư mục như vậy), máy khách : 89.248.173.145, máy chủ: testibot1.omnia.fi, yêu cầu: "NHẬN /omnia.fi.db HTTP/1.1", máy chủ: "testibot1.omnia.fi"
18/10/2021 10:04:50 [lỗi] 3469367#3469367: *60 open() "/var/www/public_html/testibot1/omnia.fi.sqlite" không thành công (2: Không có tệp hoặc thư mục như vậy), máy khách : 89.248.173.145, máy chủ: testibot1.omnia.fi, yêu cầu: "NHẬN /omnia.fi.sqlite HTTP/1.1", máy chủ: "testibot1.omnia.fi"
18/10/2021 10:05:26 [lỗi] 3469367#3469367: *66 open() "/var/www/public_html/testibot1/favicon.ico" không thành công (2: Không có tệp hoặc thư mục như vậy), máy khách: 91.153 .58.139, máy chủ: testibot1.omnia.fi, yêu cầu: "GET /favicon.ico HTTP/1.1", máy chủ: "testibot1.omnia.fi", liên kết giới thiệu: "https://testibot1.omnia.fi/"
18/10/2021 10:05:52 [crit] 3469367#3469367: *81 SSL_do_handshake() không thành công (SSL: error:141CF06C:SSL routines:tls_parse_ctos_key_share:chia sẻ khóa không hợp lệ) trong khi bắt tay SSL, máy khách: 35.203.251.54, máy chủ : 0.0.0.0:443
18/10/2021 10:05:54 [crit] 3469367#3469367: *90 SSL_do_handshake() không thành công (SSL: error:141CF06C:SSL routines:tls_parse_ctos_key_share:chia sẻ khóa không hợp lệ) trong khi bắt tay SSL, máy khách: 107.178.200.215, máy chủ : 0.0.0.0:443
18/10/2021 10:07:15 [crit] 3469367#3469367: *103 SSL_do_handshake() không thành công (SSL: error:141CF06C:SSL routines:tls_parse_ctos_key_share:chia sẻ khóa không hợp lệ) trong khi bắt tay SSL, máy khách: 107.178.237.2, máy chủ : 0.0.0.0:443
18/10/2021 11:31:10 [lỗi] 3470484#3470484: *2 open() "/var/www/public_html/testibot1/5007" không thành công (2: Không có tệp hoặc thư mục như vậy), máy khách: 91.153.58.139 , máy chủ: testibot1.omnia.fi, yêu cầu: "GET /5007 HTTP/1.1", máy chủ: "testibotti2.omnia.fi"
18/10/2021 11:31:12 [lỗi] 3470484#3470484: *2 open() "/var/www/public_html/testibot1/5007" không thành công (2: Không có tệp hoặc thư mục như vậy), máy khách: 91.153.58.139 , máy chủ: testibot1.omnia.fi, yêu cầu: "GET /5007 HTTP/1.1", máy chủ: "testibotti2.omnia.fi"
18/10/2021 11:31:21 [lỗi] 3470484#3470484: *2 open() "/var/www/public_html/testibot1/5007" không thành công (2: Không có tệp hoặc thư mục như vậy), máy khách: 91.153.58.139 , máy chủ: testibot1.omnia.fi, yêu cầu: "GET /5007 HTTP/1.1", máy chủ: "testibotti2.omnia.fi"
18/10/2021 11:32:21 [lỗi] 3470484#3470484: *3 open() "/var/www/public_html/testibot1/favicon.ico" không thành công (2: Không có tệp hoặc thư mục như vậy), máy khách: 91.153 .58.139, máy chủ: testibot1.omnia.fi, yêu cầu: "GET /favicon.ico HTTP/1.1", máy chủ: "testibotti2.omnia.fi", liên kết giới thiệu: "https://testibotti2.omnia.fi/"

Điểm:0
lá cờ de

Nguyên nhân của sự cố được in theo nghĩa đen trong bảng điều khiển dành cho nhà phát triển của trình duyệt:

thông báo lỗi chi tiết

Do đó, bạn cần thực hiện các yêu cầu XHR qua kết nối HTTPS.

Bạn có thể muốn thêm một vị trí khác vào cấu hình nginx:

vị trí /socket.io {
   proxy_pass http://localhost:5006;
}

đồng thời thay đổi URL trong cấu hình lối vào:

    socketUrl: "https://testibot1.omnia.fi",
lá cờ ch
Cảm ơn, tôi đã thêm cái này vào cấu hình Nginx, tôi nghĩ "/" này phải là "\" người phục vụ { vị trí \socket.io { proxy_pass http://localhost:5006; } } và cái này để index.html //socketUrl: "http://testibot1.omnia.fi:5006", socketUrl: "https://testibot1.omnia.fi", Nhưng vẫn không được, giờ báo lỗi thế này NHẬN https://testibot1.omnia.fi/socket.io/?EIO=3&transport=polling&t=NoJZNCe 404 (Không tìm thấy)
lá cờ de
Bạn đã tải lại nginx chưa? Ngoài ra, việc kiểm tra độ tỉnh táo thông qua `nginx -t` thường rất hợp lý
lá cờ de
Tuy nhiên, tôi không chắc rằng bạn nên sử dụng dấu gạch chéo ngược (\). Đối với dấu phân cách đường dẫn, bạn nên sử dụng dấu gạch chéo lên (http://nginx.org/en/docs/beginners_guide.html) và dấu gạch chéo ngược thường được sử dụng để thoát các ký tự đặc biệt.
lá cờ ch
paulii@vetbot7:/etc/nginx/sites-available$ sudo nginx -t nginx: cú pháp file cấu hình /etc/nginx/nginx.conf là ok nginx: file cấu hình /etc/nginx/nginx.conf kiểm tra thành công paulii@vetbot7:/etc/nginx/sites-available$ sudo systemctl reload nginx paulii@vetbot7:/etc/nginx/sites-available$ sudo systemctl restart nginx paulii@vetbot7:/etc/nginx/sites-available$
lá cờ ch
Tôi đã thử với "/" và không hoạt động. Hiện tại đây là lỗi "Không thể tải tài nguyên: máy chủ đã phản hồi với trạng thái 404 (Không tìm thấy)"
djdomi avatar
lá cờ za
đừng nói nó không hoạt động, hãy cập nhật câu hỏi và cho chúng tôi xem cấu hình mới;)
lá cờ ch
Ý bạn là gì? Nó không làm việc!
Điểm:0
lá cờ ch

tôi đã làm cho nó hoạt động

điều này là cần thiết trong tệp cấu hình proxy ngược Ngingx

người phục vụ {


   server_name testibot1.omnia.fi;
   chỉ mục index.php index.html index.htm index.nginx-debian.html;
   gốc /var/www/public_html/testibot1;

   địa điểm / {

   proxy_pass http://testibot1.omnia.fi:444;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $remote_addr;
   proxy_set_header Máy chủ lưu trữ $host;

   }

   vị trí /socket.io/ {
   proxy_pass http://testibot1.omnia.fi:5006/socket.io/;
   proxy_http_version 1.1;
   proxy_set_header Nâng cấp $http_upgrade;
   'nâng cấp' kết nối proxy_set_header;
   proxy_set_header Máy chủ lưu trữ $host;
   proxy_cache_bypass $http_upgrade;
   }  

và điều này là cần thiết trong trang web

socketUrl: "https://testibot1.omnia.fi",

Cảm ơn nhiều Alexander Tarasov! Ý tưởng của bạn dẫn tôi đến đúng con đường và sau hàng chục lần thử, tôi đã tìm thấy sự kết hợp phù hợp

Đă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.