我希望使用Apache2反向代理将HTTPS连接重定向到我的域的唯一子域。我希望所有到达a.example.com的连接都被重定向到$random$.b.example.com。为了生成我在端口3000上运行的脚本的随机值,对a.example.com的所有请求都被代理到我的脚本,该脚本用302重定向代码和新域$random$.b.example.com向客户端发回一个回复,然后所有指向$random$.b.example.com的连接都应该正常运行。
我有a.example.com和$random$.b.example.com (通配符证书*.b.example.com)的密钥和证书。但是,当我的客户端收到重定向时,它会抛出invalid peer certificate: CertNotValidForName,而不会继续查询$random$.b.example.com。我做错了什么?
我的虚拟主机如下所示:
IfModule mod_ssl.c>
ServerName a.example.com
SSLProxyEngine on
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log vhost_combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/wildcard_domain.pem
SSLCertificateKeyFile /etc/apache2/ssl/wildcard_domain.key
ServerAdmin webmaster@localhost
ServerName b.example.com
ServerAlias *.b.example.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log vhost_combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/wildcard_domain.pem
SSLCertificateKeyFile /etc/apache2/ssl/wildcard_domain.key
SSLOptions +StdEnvVars
SSLOptions +StdEnvVars
Alias /data /path/to/data
Options Indexes FollowSymLinks
AllowOverride All
Require all granted发布于 2023-01-04 06:08:14
您得到的错误意味着证书中的主题替代名称与您访问的URL中的主机名不匹配。
根据您的配置,您似乎对a.example.com和*.b.example.com都使用了相同的证书。您将得到此错误,因为证书对两个域都无效,即在重定向之前(在访问a.example.com时)或在访问whatever.b.example.com之前(在访问D3时)得到证书错误。
修复方法是要么使用包含两个名称的证书,要么在配置中使用两个不同的证书,一个用于a.example.com,另一个用于b.example.com和*.b.example.com。请注意,*.example.com的证书只包含a.example.com和b.example.com,而不包括*.b.example.com。
https://serverfault.com/questions/1119404
复制相似问题