apache虚拟主机提供不正确的证书
我的一个虚拟主机似乎使用以下配置提供了错误的证书:apache虚拟主机提供不正确的证书,apache,ssl,virtualhost,Apache,Ssl,Virtualhost,我的一个虚拟主机似乎使用以下配置提供了错误的证书: <VirtualHost *:80> # Address ServerName git
<VirtualHost *:80>
# Address
ServerName git.mclarkdev.com
ServerAlias 158.69.115.69
# Force Git
RewriteCond %{HTTP_HOST} !^git\.mclarkdev\.com [NC]
RewriteRule ^ http://git.mclarkdev.com [R=301,L]
# Force Secure
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://git.mclarkdev.com/$1 [R,L]
</VirtualHost>
<VirtualHost *:443>
# Address
ServerName git.mclarkdev.com
ServerAlias 158.69.115.69
# Force Git
RewriteCond %{HTTP_HOST} !^git\.mclarkdev\.com [NC]
RewriteRule ^ https://git.mclarkdev.com [R=301,L]
# Proxy Gogs
ProxyPass / http://git:3000/
ProxyPassReverse / http://git:3000/
# Certificates
SSLCertificateFile /etc/ssl/certs/mclarkdev.com/git.mclarkdev.com.crt
SSLCertificateKeyFile /etc/ssl/certs/mclarkdev.com/git.mclarkdev.com.key
SSLCACertificateFile /etc/ssl/certs/mclarkdev.com/git.mclarkdev.com.ca-bundle
# SSL Config
SSLEngine on
SSLCipherSuite AES256+EECDH:AES256+EDH:AES128+EECDH:AES128+EDH
SSLProtocol -ALL -SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2
SSLHonorCipherOrder on
SSLStrictSNIVHostCheck Off
SSLCompression off
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
</VirtualHost>
为什么git子域会显示根用户的证书,尽管将IP地址定义为别名
点击地址和跟踪日志,我看到请求条目通过根vhost传入
在CentOS 7上运行httpd,服务器版本:Apache/2.4.6(CentOS)
服务器构建:2016年11月14日18:04:44也许这与你有一个循环有关 尝试在
中从以下位置进行更改:
重写规则^http://git.mclarkdev.com [R=301,L]
到
重写规则^https://git.mclarkdev.com [R=301,L]
注意https您不能将
158.69.115.69
用作服务器别名ServerName
和ServerAlias
应仅列出FQDN或通配符(如*domain.com
)
当访问158.69.115.69
时,您实际上会点击默认vhost或全局Apache配置,但不会点击git.mclarkdev.com
vhost
然后,您将获得默认的服务器证书,用于mclarkdev.com
,当然,您的重写规则不适用,因为它仅在其他vhost中定义
您应该将此规则添加到默认vhost中,以确保其余部分发生在您在此处共享的2个vhost中
您还可以更改vhosts顺序,并确保在mclarkdev.com
vhosts之前定义了2git.mclarkdev.com
vhosts。在这种情况下,它将成为默认的IP地址,访问它实际上就像访问git.mclarkdev.com
如果您使用像distro config这样的启用了站点
,您可以重命名符号链接(例如,重命名vhosts文件000某物
),以确保首先包含它们。事实上,出于这个特定的原因,默认vhost通常被称为000 default
,您可能也需要重命名它
注意,尽管做了所有这些,你仍然可能得到一个
服务器无法证明它是158.69.115.69;其安全性
证书来自git.mclarkdev.com。
重定向前警告,
只是因为https并不意味着通过IP访问。证书
仅基于名称
我不确定这是否会如预期的那样起作用;当用户通过IP导航时,
Force Git
规则将匹配,并将重写到Git.mclarkdev.com
,而Force Secure
规则将重写任何不安全的请求,以确保安全。如果向用户提供了错误的证书,我仍然会遇到同样的问题。如果这在上更合适,请迁移。客户端如何使用无效证书对位置头进行加密?您最终解决了这个问题吗?
ServerName www.mclarkdev.com
ServerAlias mclarkdev.com