Descrierea defecțiunii
Am în mediul meu de testare chatbot-uri Rasa care rulează în containere docker.Frontedul Chatbot este un widget de chat web Botfront într-un site web deservit de Apache2 pe același server. De asemenea, am instalat Nginx ca proxy invers, care servește apoi domenii virtuale Apache. Chatbot funcționează direct din Apache http://testiotti2.omnia.fi:444/ și, de asemenea, prin proxy invers http://testiotti2.omnia.fi/ dar când se folosește https, eșuează, adică widgetul chatbot nu este afișat https://testibot1.omnia.fi/
Mediul meu
Versiunea serverului: Apache/2.4.41 (Ubuntu)
Versiunea nginx: nginx/1.18.0 (Ubuntu
Ubuntu 18.04
Docker versiunea 20.10.9, build c2ea9bc
docker-compose versiunea 1.29.2, build 5becea4c
Fișiere de configurare
Proxy invers Nginx (am comentat partea testibotti2 SSL în scopuri de testare)
Server {
#root /var/www/html/;
#index index.html index.htm;
nume_server testibot1.omnia.fi;
#server_name 127.0.0.1
index index.php index.html index.htm index.nginx-debian.html;
root /var/www/public_html/testibot1;
Locație \ {
proxy_pass http://testibot1.omnia.fi:444;
proxy_set_header X-Real-IP $adresă_la distanță;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Gazdă $gazdă;
# Am încercat acești parametri de mai jos, dar fără succes
#proxy_redirect off;
#proxy_set_header X-Forwarded-Proto https;
#proxy_set_header X-Forwarded-Proto $schema;
# și acești parametri i-am adăugat după instalarea SSL, fără succes
proxy_http_versiunea 1.1;
proxy_set_header Actualizare $http_upgrade;
proxy_set_header Conexiune „upgrade”;
}
access_log /var/log/nginx/testibot1.fi_access.log;
error_log /var/log/nginx/testibot1.fi_error.log;
asculta 443 ssl; # gestionat de Certbot
ssl_certificate /etc/letsencrypt/live/testibot1.omnia.fi/fullchain.pem; # gestionat de Certbot
ssl_certificate_key /etc/letsencrypt/live/testibot1.omnia.fi/privkey.pem; # gestionat de Certbot
includ /etc/letsencrypt/options-ssl-nginx.conf; # gestionat de Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # gestionat de Certbot
}
Server {
#root /var/www/html/;
#index index.html index.htm;
nume_server testibotti2.omnia.fi;
#server_name 127.0.0.1
index index.php index.html index.htm index.nginx-debian.html;
root /var/www/public_html/testiotti2;
Locație \ {
proxy_set_header X-Real-IP $adresă_la distanță;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Gazdă $gazdă;
proxy_pass http://testiotti2.omnia.fi:444;
}
access_log /var/log/nginx/testiotti2.fi_access.log;
error_log /var/log/nginx/testiotti2.fi_error.log;
# asculta 443 ssl; # gestionat de Certbot
# ssl_certificate /etc/letsencrypt/live/testibot1.omnia.fi/fullchain.pem; # gestionat de Certbot
# ssl_certificate_key /etc/letsencrypt/live/testibot1.omnia.fi/privkey.pem; # gestionat de Certbot
# include /etc/letsencrypt/options-ssl-nginx.conf; # gestionat de Certbot
# ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # gestionat de Certbot
}
Server {
if ($gazdă = testibot1.omnia.fi) {
returnează 301 https://$host$request_uri;
} # gestionat de Certbot
asculta 80;
nume_server testibot1.omnia.fi;
întoarce 404; # gestionat de Certbot
}
#Server {
# if ($gazdă = testibotti2.omnia.fi) {
# return 301 https://$host$request_uri;
# } # gestionat de Certbot
# asculta 80;
# server_name testibotti2.omnia.fi;
# return 404; # gestionat de Certbot
#}
Configurarea widgetului de chat web 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>
Această eroare o văd în fereastra de depanare a browserului
Conținut mixt: pagina de la „<URL>” a fost încărcată prin HTTPS, dar a solicitat un punct final nesecurizat XMLHttpRequest „<URL>”. Această solicitare a fost blocată; conținutul trebuie să fie difuzat prin HTTPS.
Jurnalul de erori Nginx
paulii@vetbot7:/var/www/public_html/testibot1$ sudo tail -f /var/log/nginx/testibot1.fi_error.log
[sudo] parola pentru paulii:
2021/10/18 10:04:50 [eroare] 3469367#3469367: *60 open() „/var/www/public_html/testibot1/omnia.fi.db” a eșuat (2: Nu există un astfel de fișier sau director), client : 89.248.173.145, server: testibot1.omnia.fi, cerere: „GET /omnia.fi.db HTTP/1.1”, gazdă: „testibot1.omnia.fi”
2021/10/18 10:04:50 [eroare] 3469367#3469367: *60 open() „/var/www/public_html/testibot1/omnia.fi.sqlite” a eșuat (2: Nu există un astfel de fișier sau director), client : 89.248.173.145, server: testibot1.omnia.fi, cerere: „GET /omnia.fi.sqlite HTTP/1.1”, gazdă: „testibot1.omnia.fi”
2021/10/18 10:05:26 [eroare] 3469367#3469367: *66 open() „/var/www/public_html/testibot1/favicon.ico” a eșuat (2: Nu există un astfel de fișier sau director), client: 91.153 .58.139, server: testibot1.omnia.fi, cerere: „GET /favicon.ico HTTP/1.1”, gazdă: „testibot1.omnia.fi”, referitor: „https://testibot1.omnia.fi/”
2021/10/18 10:05:52 [crit] 3469367#3469367: *81 SSL_do_handshake() a eșuat (SSL: error:141CF06C:SSL routines:tls_parse_ctos_key_share:bad key share), în timp ce client:03.4251 server SSL, handshake. : 0.0.0.0:443
2021/10/18 10:05:54 [crit] 3469367#3469367: *90 SSL_do_handshake() a eșuat (SSL: error:141CF06C:SSL routines:tls_parse_ctos_key_share:bad key share), în timp ce client: 0.7.1020 server SSL handshake. : 0.0.0.0:443
2021/10/18 10:07:15 [crit] 3469367#3469367: *103 SSL_do_handshake() a eșuat (SSL: error:141CF06C:SSL routines:tls_parse_ctos_key_share:bad key share), în timp ce client S.2.81027: server SSL, handshake). : 0.0.0.0:443
2021/10/18 11:31:10 [eroare] 3470484#3470484: *2 open() „/var/www/public_html/testibot1/5007” a eșuat (2: Nu există un astfel de fișier sau director), client: 91.153.58.139 , server: testibot1.omnia.fi, cerere: „GET /5007 HTTP/1.1”, gazdă: „testiotti2.omnia.fi”
2021/10/18 11:31:12 [eroare] 3470484#3470484: *2 open() „/var/www/public_html/testibot1/5007” a eșuat (2: Nu există un astfel de fișier sau director), client: 91.153.58.139 , server: testibot1.omnia.fi, cerere: „GET /5007 HTTP/1.1”, gazdă: „testiotti2.omnia.fi”
2021/10/18 11:31:21 [eroare] 3470484#3470484: *2 open() „/var/www/public_html/testibot1/5007” a eșuat (2: Nu există un astfel de fișier sau director), client: 91.153.58.139 , server: testibot1.omnia.fi, cerere: „GET /5007 HTTP/1.1”, gazdă: „testiotti2.omnia.fi”
2021/10/18 11:32:21 [eroare] 3470484#3470484: *3 open() „/var/www/public_html/testibot1/favicon.ico” a eșuat (2: Nu există un astfel de fișier sau director), client: 91.153 .58.139, server: testibot1.omnia.fi, cerere: „GET /favicon.ico HTTP/1.1”, gazdă: „testibotti2.omnia.fi”, referitor: „https://testibotti2.omnia.fi/”