共计 7079 个字符,预计需要花费 18 分钟才能阅读完成。
提示:本教程只针对 Nginx 有效,阿帕奇的比较复杂,目前没有教程! 目前很多人用宝塔面板搭建 https 网站,但是如果你使用宝塔面板搭建的网站不止一个,且同时有 http 和 https 协议时,会发现 http 网站会在 https 下串站的 BUG:
宝塔创建 aaa.com 站点使用了 https,其它站点 (例如 bbb.com) 使用的是 http,而未配置或开启 https 协议,但是你使用 https://bbb.com 访问网站的时候,神奇的事情就发生了,网站内容显示的是 https://aaa.com 的内容。明明 bbb.com 没有开启 https 却可以访问,而且内容还是 aaa.com 网站的内容。惊不惊喜意不意外?
刚好两位大神乱世玉米和杨秉宸也在群里说到这个问题,不但让很多站长头疼,而且对 SEO 也是很不友好。下面我们一起来看看引起这个问题的原因和解决方法:
宝塔 ssl 配置说明
从上图宝塔面板在 ssl 配置里这样说到:在未指定 SSL 默认站点时, 未开启 SSL 的站点使用 HTTPS 会直接访问到已开启 SSL 的站点。
所以这就是导致串站和跳站的原因。不知道宝塔开发人员怎么想的,这么明显的问题也不给个解决方法,那只好我们自己动手咯。
这里面有两种解决办法
【方案一】
1、添加新建一个站点,绑定域名那里填你服务器的 ip,其他按下图设置。
宝塔添加新站点
2、修改这个站点的配置文件如下:
server
{
# 设置 80 端口不能通过 ip 访问。
listen 80 default_server;
server_name 123.123.123.123;
root /www/wwwroot/123.123.123.123;
return 444;
}
server {
# 设置 443 端口如果站点没有启用 ssl 直接返回 444 状态码。
listen 443 default_server;
server_name _ ;
ssl on;
# 注意修改以下部分内容,把路径换成你服务器上已存在的证书。
ssl_certificate /www/server/panel/vhost/cert/xxx/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/xxx/privkey.pem;
# 证书部分结束
return 444;
}
其中 server_name 123.123.123.123 中的 123 要修改成你网站 ip,另外 ssl_certificate /www/server/panel/vhost/cert/xxx/fullchain.pem 和 ssl_certificate_key /www/server/panel/vhost/cert/xxx/privkey.pem 这两个文件要换成你网站已经存在的 https 的证书就可以了。
【方案二】
第一步:创建一个站点
创建一个站点域名就使用你域名乱命名二级域名(避免以后使用),比如你域名时 abc.com, 你们你新建站点就绑定 aaaakkd2dd.abc.com, 这里 aaaakkd2dd 就是乱取的,需要注意新建站点不需要解析。
新建站点绑定一个无用域名
第二步:删除新建站点的默认文件
默认创建站点对应站点根目录中会有 index.html,将其删除。
目的是让站点不能访问
删除创建站点 index.html 文件
第三步:开启 SSL
需要准备 SSL 证书文件.pem 和.key 文件,这里为大家准备一个过期的但可以使用的证书内容。
1、证书 key 和 pem 文件(Nginx 环境用的)
.key 文件代码:
—–BEGIN RSA PRIVATE KEY—–
MIIEpAIBAAKCAQEAlcZJiGVMbbzrWzkmhBJxjoMbFSSCtLzcY0poxwTxyxzd2pw1
45OIV9WllYNTotQyOheiJEN9hGgU/qjIRpKg/1KrSnxsykYwevMjsyM/Rs3W7MRr
EGjCqr9VfWCnC/mOhwrSeEtL76DaMTpYIYIVemK+W+BajKD5nNekjs6567phMFbm
Bsqil3hXWE31GyIaYwQqbMWI1gCSX/Tvh3dmt2dVE2/7q4soZPVSlNqEq92UENqR
6k3aQS+PoKOBj9b4Y1wtveL0bNOHqi4e7iXtucPnlWLlrpylm1ybm9Q0AUm4X0N0
k1XFB8hyOWHH0SgczbKbbHfaJEWi7kDVsUCL1wIDAQABAoIBAQCKUzJwbRX0N8mq
W5Lt4VbNRtqJYUnyAIcOkJdKT4+8hfGDyEeg4g3HCUM/XaWtuYqVymPuWAKhebsC
IwGs5BkbFc+rIFUdT0vREaND++ahztOToig7ZHV9Wu5quAwvbBEtOVp+zRPZwVYi
pv7kG48Yk/+5PPCD9tvx9ds+JUDiqrD9jEEz8WfxziFeCeO/HsjDJwKN363qGNCh
lvvslAZXyRmdyWGywCG5DWpyjGj54OxCMp7R0nsrCrnRQz333i+NhjWCODvusw1l
tPO47Fn80D9UQUNo4ep51HaBJ66iuB9Sgui18Gi7o3DiJ9myqzZq4GMkTeApQra5
IOM+vug5AoGBAPfDLxwVc/YjltVCSiw06gEKwjYuzI/FjVDmpn9OObP4F2HWSXom
W/4A5LIjzJZSLeYU0Strr/gZ94OiC2EqqpTZrzIPzpQYeIIjBc2Vdhq3EURaKDS4
3i03Y/F139/tnn2T8nA9CY4vaJ4JWkVXSFP6SOvreGtlH4YAvh/IgmDbAoGBAJrB
Fb4XPa172EHpKwoxzXcEIiy6T5glVAjcLEl91NCjW4h5QHoz31tYxYRPrg3b6McM
UiTN2NWfhytFlzZFEhnAOHfel98QJFeMOz9MszZlIV/OdvevcIo2+3NSmJ7lMint
rimkX8TIi/dE2SALZ12SxzZ6QX/7O+L5wKEPJoO1AoGAX+VmGIKdLYm82bIcr1uT
ru+RGBOpDYSzG7sKen+2idfehPnB2st6E6gY3HJKv2vzY/hutVWq+GZkjMhtiyBO
gep3ivLfTCbkjcosdtQAsHpm7oPOyAk9xVaJEm5DRpLcI1LeJV8akbP71B9elzQf
RJG9I8MyCq9LMjybWgXroL0CgYA7bDr6FBiF3hErNepl7ruzoK2yuRPJG0RKZqjG
y3+FYcTLAawlgHeartqhNKtj/PZEQFHmefhyBuCzV/R5TUpnAu1r8dglOiCKUXmK
k9wY3fpTvIboEsDHAdfJ74RVNzLs8Kw4pzpy6IL+PryU1mwpfSvrmkQ+bW0QedBi
x9uFJQKBgQDkSWP5fuTDV/W7sOwZAplXWydu+9wM43fb76ycdK3NMkODLFpG5qr/
2kIUcyeS/SlJPwwHF2XpzsNbqUK2urDy0y1sgriOSdh/mPgvWU0L/rcU25mi6ao1
aXa4mmLTeP7b+fSpU+FA4jlo/+X2Nw3nMa77S0M4ucDOPF+craFiMA==
—–END RSA PRIVATE KEY—–
.pem 文件代码:
—–BEGIN CERTIFICATE—–
MIIFfzCCBGegAwIBAgIQCWJ4ZNU3PH/Dxidtj6DcfzANBgkqhkiG9w0BAQsFADBu
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMS0wKwYDVQQDEyRFbmNyeXB0aW9uIEV2ZXJ5d2hlcmUg
RFYgVExTIENBIC0gRzEwHhcNMTgwODI5MDAwMDAwWhcNMTkwODI5MTIwMDAwWjAV
MRMwEQYDVQQDEwppLjE4MDI4LmNuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAlcZJiGVMbbzrWzkmhBJxjoMbFSSCtLzcY0poxwTxyxzd2pw145OIV9Wl
lYNTotQyOheiJEN9hGgU/qjIRpKg/1KrSnxsykYwevMjsyM/Rs3W7MRrEGjCqr9V
fWCnC/mOhwrSeEtL76DaMTpYIYIVemK+W+BajKD5nNekjs6567phMFbmBsqil3hX
WE31GyIaYwQqbMWI1gCSX/Tvh3dmt2dVE2/7q4soZPVSlNqEq92UENqR6k3aQS+P
oKOBj9b4Y1wtveL0bNOHqi4e7iXtucPnlWLlrpylm1ybm9Q0AUm4X0N0k1XFB8hy
OWHH0SgczbKbbHfaJEWi7kDVsUCL1wIDAQABo4ICcDCCAmwwHwYDVR0jBBgwFoAU
VXRPsnJP9WC6UNHX5lFcmgGHGtcwHQYDVR0OBBYEFI8zIU+zoVoBaUyOUL2ixwKA
I6+3MBUGA1UdEQQOMAyCCmkuMTgwMjguY24wDgYDVR0PAQH/BAQDAgWgMB0GA1Ud
JQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjBMBgNVHSAERTBDMDcGCWCGSAGG/WwB
AjAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMAgG
BmeBDAECATCBgQYIKwYBBQUHAQEEdTBzMCUGCCsGAQUFBzABhhlodHRwOi8vb2Nz
cDIuZGlnaWNlcnQuY29tMEoGCCsGAQUFBzAChj5odHRwOi8vY2FjZXJ0cy5kaWdp
Y2VydC5jb20vRW5jcnlwdGlvbkV2ZXJ5d2hlcmVEVlRMU0NBLUcxLmNydDAJBgNV
HRMEAjAAMIIBBQYKKwYBBAHWeQIEAgSB9gSB8wDxAHYApLkJkLQYWBSHuxOizGdw
Cjw1mAT5G9+443fNDsgN3BAAAAFlhKJeAQAABAMARzBFAiEA1D+C2NxHKywhBvxc
r/T8ibXcegayrSMUFQdACqdP62cCIB80+ey+9mkrLb7BRsTBbSI3NOLrViXKXI8c
eUeXPOpOAHcAh3W/51l8+IxDmV+9827/Vo1HVjb/SrVgwbTq/16ggw8AAAFlhKJe
kgAABAMASDBGAiEA2gOXHEtaVclq8EeIHhXoxzUoFDMljhg8tdcT89FPkQACIQD8
dV0WEmsXa+Hmj/MAjqXMeJMkoR55xa08L3uD5FptQTANBgkqhkiG9w0BAQsFAAOC
AQEAVcFjxDMmbeOk1DHgMAsU11Uu5/5U9/uD25VXfZHkYfROcD9tv0rxVKRckZBU
Q5EPLgp93o/P5xv4XKlpjEEDaBqddXXkzQ3WvXtQ4g5BH5JbII/SOckaYmpFexls
8X7PIGzE7bwm003Hu8kf/Fy0elsex1DnYoXw5xD84tcDhQzm0WXVTKZVBqqQKDBA
9F9YytGsVkVDMDBivGsHH20sAl2P+2RCt5ZCHzZhDUcHZSQoe3ehv6SYBY5XYd6X
5idsqhxuhGmVFeBXcjuWmrb6pQf9R++2ui09sS0Av6qMTErxGi6WAjIvXKO0eszB
sf2F4TP7LeDaKDRfaGvMuiuc+A==
—–END CERTIFICATE—–
—–BEGIN CERTIFICATE—–
MIIEqjCCA5KgAwIBAgIQAnmsRYvBskWr+YBTzSybsTANBgkqhkiG9w0BAQsFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
QTAeFw0xNzExMjcxMjQ2MTBaFw0yNzExMjcxMjQ2MTBaMG4xCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
b20xLTArBgNVBAMTJEVuY3J5cHRpb24gRXZlcnl3aGVyZSBEViBUTFMgQ0EgLSBH
MTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALPeP6wkab41dyQh6mKc
oHqt3jRIxW5MDvf9QyiOR7VfFwK656es0UFiIb74N9pRntzF1UgYzDGu3ppZVMdo
lbxhm6dWS9OK/lFehKNT0OYI9aqk6F+U7cA6jxSC+iDBPXwdF4rs3KRyp3aQn6pj
pp1yr7IB6Y4zv72Ee/PlZ/6rK6InC6WpK0nPVOYR7n9iDuPe1E4IxUMBH/T33+3h
yuH3dvfgiWUOUkjdpMbyxX+XNle5uEIiyBsi4IvbcTCh8ruifCIi5mDXkZrnMT8n
wfYCV6v6kDdXkbgGRLKsR4pucbJtbKqIkUGxuZI2t7pfewKRc5nWecvDBZf3+p1M
pA8CAwEAAaOCAU8wggFLMB0GA1UdDgQWBBRVdE+yck/1YLpQ0dfmUVyaAYca1zAf
BgNVHSMEGDAWgBQD3lA1VtFMu2bwo+IbG8OXsj3RVTAOBgNVHQ8BAf8EBAMCAYYw
HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8C
AQAwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdp
Y2VydC5jb20wQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQu
Y29tL0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNybDBMBgNVHSAERTBDMDcGCWCGSAGG
/WwBAjAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BT
MAgGBmeBDAECATANBgkqhkiG9w0BAQsFAAOCAQEAK3Gp6/aGq7aBZsxf/oQ+TD/B
SwW3AU4ETK+GQf2kFzYZkby5SFrHdPomunx2HBzViUchGoofGgg7gHW0W3MlQAXW
M0r5LUvStcr82QDWYNPaUy4taCQmyaJ+VB+6wxHstSigOlSNF2a6vg4rgexixeiV
4YSB03Yqp2t3TeZHM9ESfkus74nQyW7pRGezj+TC44xCagCQQOzzNmzEAP2SnCrJ
sNE2DpRVMnL8J6xBRdjmOsC3N6cQuKuRXbzByVBjCqAA8t1L0I+9wXJerLPyErjy
rMKWaBFLmfK/AHNF4ZihwPGOc7w6UHczBZXH5RFzJNnww+WnKuTPI0HfnVH8lg==
—–END CERTIFICATE—–
以上代码直接拷贝即可使用。虽然以上是过期的证书,但也是可以用于解决问题。
2、宝塔后台开启 SSL
拷贝 SSL 证书代码开启这个新建站点
完成站点 SSL HTTPS
第四步:设置默认站点 完成问题解决
将这个新建站点设置为默认站点
到此完成解决访问非开启 ssl 的站点以 https 访问却打开是开启 ssl 站点,这种有点像串站感觉。
最后如果以 https 访问未开启 SSL 站点,将不会打开 SSL 站点了。
【方案三】
1、新建一个站点“null.com”,里面什么都不放,空的
2、给这个站点增加错误 SSL(KEY 和 PEM)
3、默认站点选择 null.com(默认站点在网站项目中,添加站点旁)
4、清理缓存访问测试下,无意外 OK
PS:
在遇到这个问题第一时间做的是关闭 A 站点的 SSL,但关闭后服务器内所有站点均无法访问,之后找到了这个方法,思路就是未开启 SSL 的站点通过 https 访问本就无法访问,所以有默认站点后,就会访问默认空站点的 SSL,效果是一样的。