Tôi chạy một thiết bị phần cứng Unifi đi kèm với chứng chỉ tự ký, được phát hành vào ngày unifi.local
. Đối với thiết lập hiện tại của tôi, không có tùy chọn để nhập trực tiếp chứng chỉ trên công cụ vì một số lý do, vì vậy tôi đã cố gắng loại bỏ thông báo chứng chỉ không hợp lệ khỏi trình duyệt của mình bằng cách sử dụng proxy ngược dựa trên apache2 cung cấp quyền truy cập vào công cụ bên dưới miền khác, được bảo mật bằng chứng chỉ Letsencrypt.
Thiết lập hiện tại của tôi trông giống như sau:
Máy tính xách tay <-> Apache Reverse Proxy (2.4.48, Debian, chứng chỉ miền ký tự đại diện đáng tin cậy) <-> Thiết bị Unifi (chứng chỉ tự ký)
Ý tưởng của tôi là cung cấp một miền bảo mật có tên unifi.mydomain.tld
cho phép truy cập an toàn vào thiết bị.
Trong proxy ngược apache của tôi, tôi đã tạo và kích hoạt tệp cấu hình giống như sau:
<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>
Tuy nhiên, nếu tôi truy cập unifi.mydomain.tld
, trình duyệt của tôi trả lại chứng chỉ cho unifi.local
và không cho unifi.mydomain.tld
và do đó, nó tạo ra lỗi chứng chỉ không đáng tin cậy. Một số mẹo được đề cập để biến SSLProxyXác minh
đến không ai
, và SSLProxyCheckPeerName
, SSLProxyCheckPeerCN
, và SSLProxyCheckPeerHết hạn
đến tắt
, tuy nhiên, không có thủ thuật nào trong số này hiệu quả. Tôi không thể nhập chứng chỉ solidoil tự ký của Unifi trên máy chủ proxy ngược của mình.
Tôi không chắc liệu apache2 có phàn nàn về chứng chỉ hay trả lại chứng chỉ sai hay không. Làm cách nào để tôi có thể truy cập vào công cụ bằng cách duyệt qua unifi.mydomain.tld
mà không nhận được lỗi chứng chỉ này?