假如我们有以下场景:
- Ubuntu 18.04.5 LTS 机器
- 在此机器的端口上运行的第三方服务器
10000
,并且已经配置了自签名certificate
(https://localhost:10000) - 一个将端口暴露给世界的ngrok
tcp
隧道(10000
https://0.tcp.ngrok.io:1234/)
我们如何配置 Apache httpd 服务器,以便只有具有相同证书的客户端才能访问并查看 ngrok 公共 URL 的内容(https://0.tcp.ngrok.io:1234/)?
我尝试过的一些方法包括:
- 将证书复制到
/etc/apache2/ssl
- 使用以下命令启用 ssl 模块
a2enmod ssl
- 配置为
/etc/apache2/sites-available/000-default.conf
具有如下部分:
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/cert.pem
SSLCertificateKeyFile /etc/apache2/ssl/key.pem
SSLVerifyClient require
SSLCACertificatePath /etc/ssl/certs
SSLCACertificateFile /etc/apache2/ssl/cert.pem
SSLCADNRequestFile /etc/apache2/ssl/cert.pem
SSLVerifyDepth 1
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
- 重新启动 Apache 服务器
service apache2 restart
但不幸的是,这还不起作用。我是否应该将策略更改为其他策略?