Chrome https соединение Не защищено - Nginx https сервер - PullRequest
1 голос
/ 30 марта 2020

У меня есть Windows10 хост с Ubuntu без GUI, установленный на гостевом устройстве VirtualBox. У меня есть выделенный домашний сетевой адрес c IP для Ubuntu (198.162.0.110). На этом VBox-Ubuntu я настроил прокси-сервер nginx, который обеспечивает HTTPS-соединение с HTTP-сервером разработки Rails. Я использую соединение s sh (putty, vscode-s sh, winscp и другие) для подключения моего хоста (win10) к гостю (Ubuntu), чтобы использовать среду разработки на Windows.

Мне удалось настроить Nginx прокси-сервер, который позволяет подключаться через HTTPS (мне нужно это для разработки и тестирования безопасных файлов cookie и т. Д. c.).

Теперь я могу подключиться к серверному приложению, как это: https://192.168.0.110 «успешно», но я получаю следующее отклонение:

enter image description here

I go Proceed to 192.168.0.110 (unsafe) и приложение появляется и работает. Но теперь мне нужно выполнить вход в социальную сеть (Facebook), и это Not secure, похоже, является проблемой. Facebook требует безопасного соединения:

enter image description here

Вот моя Nginx конфигурация:

 server {
        listen 443 ssl;
        listen 80;
        server_name 192.168.0.110 localhost 127.0.0.1;
        root /home/csrhub/git/csrhub-frontend/public/rails;
        index index.html;
        location / {
                proxy_pass http://127.0.0.1:8016/;
                proxy_set_header X-Real-IP $remote_addr; 
                proxy_set_header Host $http_host;
                proxy_set_header Port 443;
                proxy_ssl_trusted_certificate /etc/nginx/ssl/certs/homerouter/homerouter.crt;
                proxy_read_timeout 80s;
        }
        location /api/v2/ {
                proxy_pass http://127.0.0.1:8014;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Host $http_host;
                proxy_redirect http:// https://;
        }

        ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers         AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;
        ssl_certificate      /etc/nginx/ssl/certs/homerouter/homerouter.crt;
        ssl_certificate_key  /etc/nginx/ssl/certs/homerouter/homerouter.key;
        ssl_session_cache   shared:SSL:10m;
        ssl_session_timeout 10m;
}

Вот так я сгенерировал сертификат : openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout homerouter.key -out homerouter.crt -config homerouter.conf

Это файл конфигурации homerouter.conf , используемый при создании сертификата.

[req]
default_bits       = 2048
default_keyfile    = localhost.key
distinguished_name = req_distinguished_name
req_extensions     = req_ext
x509_extensions    = v3_ca

[req_distinguished_name]
countryName                 = Country Name (2 letter code)
countryName_default         = US
stateOrProvinceName         = State or Province Name (full name)
stateOrProvinceName_default = New York
localityName                = Locality Name (eg, city)
localityName_default        = Rochester
organizationName            = Organization Name (eg, company)
organizationName_default    = localhost
organizationalUnitName      = organizationalunit
organizationalUnitName_default = Development
commonName                  = Common Name (e.g. server FQDN or YOUR name)
commonName_default          = localhost
commonName_max              = 64

[req_ext]
subjectAltName = @alt_names

[v3_ca]
subjectAltName = @alt_names

[alt_names]
DNS.1   = localhost
DNS.2   = 127.0.0.1
DNS.3   = 192.168.0.110
DNS.4   = 192.168.43.60

Очевидно, что я что-то упустил или, по крайней мере, я что-то делаю не правильный путь. Пожалуйста, помогите мне сделать это соединение безопасным. В конце концов, это моя домашняя локальная сеть - здесь все доверяют.

1 Ответ

0 голосов
/ 30 марта 2020

Ох, я обнаружил проблему:

Сначала мне нужно было добавить общее имя в качестве имени хоста (я выберу homerouter в качестве общего имени для адреса локальной сети 192.168.0.1, где расположен nginx) на Мой windows (хост-машина) вот как: https://www.liquidweb.com/kb/edit-host-file-windows-10/.

Затем в моем homerouter.conf я изменил некоторые поля следующим образом:

........
default_keyfile    = homerouter.key
........
commonName                  = homerouter
commonName_default          = homerouter 
commonName_max              = 64

[req_ext]
subjectAltName = @alt_names

[v3_ca]
subjectAltName = @alt_names

[alt_names]
DNS.1   = localhost
DNS.2   = 127.0.0.1
DNS.3   = 192.168.0.110
DNS.4   = 192.168.43.60
DNS.5   = homerouter 

Затем я выполнил следующую команду:

certutil -d sql:$HOME/ssl/nssdb -A -t "P,," -n "homerouter" -i homerouter.crt

У меня не было соответствующей базы данных, поэтому мне пришлось создать новую. Как? Смотрите здесь . И, конечно же, добавили недавно сгенерированный сертификат в Chorme.

И все заработало как прелесть!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...