Я запускаю аппаратное устройство Unifi, которое поставляется с самозаверяющим сертификатом, выпущенным unifi.local
. Для моей текущей настройки невозможно напрямую импортировать сертификат на устройство по нескольким причинам, поэтому я попытался избавиться от сообщения о недопустимом сертификате моего браузера с помощью обратного прокси-сервера на основе apache2, который обеспечивает доступ к устройству под другой домен, защищенный сертификатом Letsencrypt.
Моя текущая установка выглядит следующим образом:
Ноутбук <-> Обратный прокси-сервер Apache (2.4.48, Debian, сертификат доверенного домена с подстановочными знаками) <-> Устройство Unifi (самозаверяющий сертификат)
Моя идея состоит в том, чтобы предоставить защищенный домен под названием unifi.mydomain.tld
что обеспечивает безопасный доступ к устройству.
В моем обратном прокси-сервере apache я создал и включил файл конфигурации, который выглядит следующим образом:
<IfModule mod_ssl.c>
<VirtualHost *:443>
Serveradmin [email protected]"
ServerName unifi.mydomain.tld
SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
ProxyPass "/" "https://10.0.1.1/"
ProxyPassReverse "/" "https://10.0.1.1/"
ProxyPreserveHost Off
TransferLog /var/log/apache2/proxies/unifi_access.log
ErrorLog /var/log/apache2/proxies/unifi_error.log
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
</IfModule>
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 +TLSv1.2
SSLCipherSuite SSL ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384
SSLCipherSuite TLSv1.3 TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
SSLOpenSSLConfCmd DHParameters /mnt/certificates/diffie-hellman/dhparam4096.pem
SSLHonorCipherOrder on
SSLCompression off
SSLSessionTickets off
SSLCertificateFile /etc/letsencrypt/live/mydomain.tld/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.tld/privkey.pem
</VirtualHost>
# Originally from /etc/letsencrypt/options-ssl-apache.conf
# Written directly here because otherwise SSLProtocol etc is overwritten
# Add vhost name to log entries:
SSLOptions +StrictRequire
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" vhost_combined
LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common
</IfModule>
Однако, если я получаю доступ unifi.mydomain.tld
, мой браузер возвращает сертификат для unifi.local
а не для unifi.mydomain.tld
и, следовательно, это создает ошибку, что сертификат не является доверенным. Несколько советов, упомянутых, чтобы превратить SSLProxyVerify
к никто
, и SSLProxyCheckPeerName
, SSLProxyCheckPeerCN
, и SSLProxyCheckPeerExpire
к выключенный
однако ни один из этих трюков не сработал. Я не могу импортировать самозаверяющий сертификат Unifi snakeoil на свой обратный прокси-сервер.
Я не уверен, жалуется ли сам apache2 на сертификат или возвращает неправильный сертификат. Как я могу получить доступ к устройству, просматривая unifi.mydomain.tld
без получения этой ошибки сертификата?