Ủy Ngược
« tiếng Việt »
cập nhật: 2023-04-24
Có rất nhiều cách để thiết lập và ủy ngược là không bắt buộc. Nhưng với đa số trường hợp thì tôi khuyến nghị bạn nên dùng nếu đã có sẵn website. Dưới đây là một trường hợp phổ biến…
Giả dụ bạn đang chạy https://chat.example.net
ở cổng
443
và bạn muốn dâng một dịch vụ WebCC ở
https://chat.exampl.net/wecc
trên cùng một máy với « Apache
» hầu web, bạn có thể cấu hình tương tự như sau:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName chat.example.net
DocumentRoot /some/where/chat.example.net
Include /your/certificate/options.config
SSLCertificateFile /your/certificate/chat.example.net/fullchain.pem
SSLCertificateKeyFile /your/certificate/chat.example.net/key.pem
<IfModule mod_proxy.c>
ProxyPass /webcc "ws://localhost:7681/webcc"
ProxyPassReverse /webcc "ws://localhost:7681/webcc"
Header always set Content-Security-Policy "default-src 'self' ; style-src 'unsafe-inline' 'self' *.example.net ; script-src 'unsafe-inline' 'self' *.example.net ; object-src 'none' ; img-src 'self' *.example.net ; frame-src 'self' *.example.net ; font-src 'self' *.example.net ; frame-ancestors 'self' https://example.net ; base-uri 'self' ; form-action 'self' ;"
</IfModule>
</VirtualHost>
</IfModule>
Với nội dung trên, bạn sẽ cần cho ttyd
nghe tín hiệu từ
cổng 7681
. Kết nối sẽ sử dụng mô-đun websocket nên bạn sẽ
cần mở nó lên trong Apache:
a2enmod wstunnel
Cái dòng Content-Security-Policy
dài lòng thòng là cần
thiết để ngăn chặn vô số dạng tấn công. Tiêu biểu là
frame-ancestor
sẽ không cho các trang mạng khác dùng tài
nguyên của bạn. Nghĩa là nó chỉ cho phép
https://example.net
nhúng
https://chat.example.net/webcc
vào trong mác
<iframe>
thôi.
Tôi nhiệt liệt khuyến khích bạn tìm hiểu thêm các tài liệu khác để bảo vệ các dịch vụ của mình.