技术宅

当前位置:首页 > 网站教程 > 其他教程

其他教程

防止 SSL 证书泄露源站 IP

时间:10-09 作者:
前言 快速自测 而如果查询结果中出现了你的源站 IP,并且你已经套了 CDN,这说明你的源站 IP 已泄露。 莫要慌,原因通常是这样的: 用 Nginx 部署网站后,如果未设置默认网站

前言

图片[1]-防止 SSL 证书泄露源站 IP-hyun's blog

 

 

 

 

 

快速自测

 

图片[2]-防止 SSL 证书泄露源站 IP-hyun's blog

 

 

而如果查询结果中出现了你的源站 IP,并且你已经套了 CDN,这说明你的源站 IP 已泄露。

 

 

莫要慌,原因通常是这样的:

 

 

用 Nginx 部署网站后,如果未设置默认网站,直接访问 IP 的 443 端口,即 IP:443 ,Nginx 默认会返回 “首次创建的那个站点” 的 SSL 证书。浏览器这边会提示 “该安全证书来自 xxx.com”,间接地也就暴露了你这个 IP 对应的域名。

 

 

就像下图这样:

 

 

图片[3]-防止 SSL 证书泄露源站 IP-hyun's blog

 

 

开始

 

 

1. 用假域名创建一个网站

 

 

这里假设用 hyun.cc  (实际情况你可以随便填写一个) 作为假域名,填入并保存:

 

 

图片[4]-防止 SSL 证书泄露源站 IP-hyun's blog

 

 

 

 

2. 给网站绑定一个ssl证书

 

这个证书一定要填写假证书,不能是你的真证书,不然你白忙活,可以自己签一个假证书,如果不会签下面我会提供一个,直接用我提供的证书即可!

 

 

将证书和密钥填入并保存,再开启强制 HTTPS 。

 

 

图片[5]-防止 SSL 证书泄露源站 IP-hyun's blog

 

 

证书
-----BEGIN CERTIFICATE-----
MIIDxjCCAq6gAwIBAgIICNy1cvFJ0lkwDQYJKoZIhvcNAQELBQAwgYoxCzAJBgNV
BAYTAkNOMRMwEQYDVQQDDApleGFtcGxlLmNuMRAwDgYDVQQKDAdDb21wYW55MREw
DwYDVQQLDAhEaXZpc2lvbjEOMAwGA1UECAwFQW5IdWkxDjAMBgNVBAcMBUhlRmVp
MSEwHwYJKoZIhvcNAQkBFhJleGFtcGxlQGV4YW1wbGUuY24wIBcNMjQwODA1MTcw
OTUyWhgPOTk5OTA4MDUxNzA5NTJaMIG4MQswCQYDVQQGEwJDTjFJMEcGA1UEAwxA
aHl1bi5jY++8jG5zYS5jY++8jG5ldGp1ZS5jb23vvIxuZXRqdWUuY27vvIx3ands
a2ouY29t77yMbWZ5eC5jbjEkMCIGA1UECgwb5rKz5Y2X55yB572R54i1572R57uc
56eR5oqAMQkwBwYDVQQLDAAxCTAHBgNVBAgMADEJMAcGA1UEBwwAMRcwFQYJKoZI
hvcNAQkBFgg3QDd6ei5jbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AJ3HQ5/nARSRiuKHkSBtGTzmJ9NrrAAlderp3qfBvm6/sGA7q1iSMqn7TuOiAMkE
95QckLbi57q+Wmxx2w98DI0dPwW8jC0L87M+EBWCY4uJPIvAM+afQcOO6/YpyX0Z
L+kd660mvJ8f4x2lXemgPVZWI0H6EtlcoihbokbpZHklb+RYplnrYg1ZDDZ4Hl88
EWxddXcn/LndjZ7YLuVjytW5L2uG/1h3YfdYb/HcC9Y0s3Yq33eKyvOw+kprlzTn
okdlPRYsY4oiBP42bWWgQrLTl13xcIVTFLoAttlNa30B4Dn5X23pvndP7OcI3NNo
E4EMX/MH+9DTXEfMMWtTn8ECAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAZAjbjr9X
ESHXElVVOqRPatPjPJszS9EO+MK2A2ek49iwFzgqIKRrw3SZ566OGA67qf0Rg73R
bwfOVI5zO72wE45W22sL/iUbo0b+3UqvIWxkeMfqMjAJB+QWkm7GonrvCtEjZFrT
fPfBSre2OXWHin3w88DYVx/XMZ0064XZWEPGKNeJkBNhJjC1V2m9Hkz2IGxB94pE
G86+ncH/yrdxQiTgvtUo+kwVYG2wLq59RMwr5B3ZCrjpFTm52Uy2Snw6GqYnV7Bh
/cs8KJeOmipZDjVOv4AisLtOxdpPwZTqERV+u9PApGTU0dgtsgLeGx6apWWaheQH
O4fmfwIsSE/G/A==
-----END CERTIFICATE-----

私钥
-----BEGIN RSA PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCdx0Of5wEUkYri
h5EgbRk85ifTa6wAJXXq6d6nwb5uv7BgO6tYkjKp+07jogDJBPeUHJC24ue6vlps
cdsPfAyNHT8FvIwtC/OzPhAVgmOLiTyLwDPmn0HDjuv2Kcl9GS/pHeutJryfH+Md
pV3poD1WViNB+hLZXKIoW6JG6WR5JW/kWKZZ62INWQw2eB5fPBFsXXV3J/y53Y2e
2C7lY8rVuS9rhv9Yd2H3WG/x3AvWNLN2Kt93isrzsPpKa5c056JHZT0WLGOKIgT+
Nm1loEKy05dd8XCFUxS6ALbZTWt9AeA5+V9t6b53T+znCNzTaBOBDF/zB/vQ01xH
zDFrU5/BAgMBAAECggEAAOEiPxHL7h62DsIZRLGgUILgEbP8elHlzNHceiRQsLVs
O6Bq2Z8TUyJ5wPfPZ+TEJwI7lcNhGIe/VrJR7uMJfwoHfAYTehxNEaXnc8voDLhD
+xZEC8roiaPM1vtKZS0RjkEgEJ/iG65zMar7wXsRdcncNN3P7VV7I2ezBBDAt5Kj
4juxU6dBvQWM6I74AZcYM8cqNFMsXifMmuyiRyqd3pmXkoEB6L0QNSFfweZI3Zif
lzexXUzM5izkVIG64jHBBpNBbBJn2QbuZViFeSH8ghevp+mzrEAd48P/t0GK1zNq
MGKyNQNZcdY1C8G0pRRmXODKv/k9FPHx/AllNJzygQKBgQDhHPjlAoxRPmvW16V1
lpXLucWwXYlRIxytsRnp1u5NLVvZ4zGxgKfn5uSlZgs0tNXRkwXbX3eeh07kmNge
2Mf4Il0zF/3gkVJlmtaOSqA4YB1PlN/V/4c6g/582MFPwwit70m9+ECk5iJ2a6WY
4KIag0XeqMajbDRiLtOmjrkYYQKBgQCzbS3H0Jx92hVKjU7zBz4zkN8023NCndlO
2bCyHSmD7hBMrQpoVKHf1oUZG6CmKD2M8B2DLeON2loyYY3S4DA2iwkmhpwguwCs
xbEd+5RlfWmwV1DojOS4czuAZqBOP3lRRG4ZNbsACERosgzBVt7GXg63Lt+Sm1LX
p1lCd9BDYQKBgCMBTVbXOZicm0pSSEFrxClk3u/Y67R5QElmI8BwEqhfqEvOf3i5
p+JwzhdGMfHlOOaY9S0ywDgflE4J0nmhfh8AwPtj/K+CCY0RMdH4mseJcqVgYho1
3QJlahph3lWX326kqhPnWa4Kt0sw3BRUwgBbb277UcAx4EdwPqtEwFWhAoGAP5fm
rfdmP8TX3wCOhtx+U1B5jAZrp6TCrIvDcJ2dZUEvTb3W/ntglDE4I1oDamDAz/8a
tq/BAzns1gZ1edQzwmEs8Rasp30gFBxNVk8gnYgBuZp49rNZLXbKFAxLrPAaU49p
Zk4A5VYIyQKyOqRLeQtFM+/NFe0vQ3fwzvogOoECgYBc9ikn6/nVZSqdHvCuq8em
SSQQqaNFDeYZ5qWO7dEMRXlgz6GNPFZMdBMkUim9y9urW5lw3FEziBdfeZlf4F+o
HF9gDkMawSadYVUKxfig+7p4WzCcG6KNDWA2NQPA10Ds9AnwGsBoHENqNmeBqFrI
MyHvZgj88vT9flYBr/TZ6w==
-----END RSA PRIVATE KEY-----

 

 

3. 设置默认站点

 

 

看图:

 

 

图片[6]-防止 SSL 证书泄露源站 IP-hyun's blog

 

 

4. 验证效果

 

 

创建一个无痕标签页,再次通过 https 访问你的 IP。如果刚刚一切配置正确,此时应当不再显示你的域名。

 

 

图片[7]-防止 SSL 证书泄露源站 IP-hyun's blog

 

 

这时候点击浏览器地址栏左侧的 “不安全” 提示,还可以看到刚刚那个自签名证书的信息~

 

 

图片[8]-防止 SSL 证书泄露源站 IP-hyun's blog

 

 

好啦,至此,你已经成功隐藏了你的源站 IP 。

 

 

但由于那个 Censys Search 仍会保留查询历史结果,建议你立即找主机商更换一个新的 IP,或者向 Censys Search 要求删除搜索结果。

 

 

5. 更高级的手段 (可选)

 

 

如果有特别高的安全需求,还可以设置服务器 iptables:只允许 CDN 服务商的 IP 段访问自己的服务器。

 

 

当然了,一般没必要。

 

 

其它安全措施

 

 

不要自建邮局

 

 

比如宝塔邮局这种,在自己的服务器发信可能会泄露源站 IP,建议使用阿里/腾讯等提供的企业邮箱服务。

 

 

 

 

禁用 xmlrpc 和 REST API

 

 

一般人用不上,还有被攻击者利用的风险。 (针对 WordPress 站长)

 

 

编辑你主题的 functions.php 文件,在底部插入以下代码:

 

 

// 禁用 xmlrpc.php
add_filter( 'xmlrpc_enabled', '__return_false' );
// 禁用 REST API
add_filter('rest_authentication_errors', 'disable_rest_api_except_admins');
function disable_rest_api_except_admins($access) {
  if (!current_user_can('manage_options')) {
    return new WP_Error('rest_disabled', __('REST API IS DISABLED'), array('status' => 403));
  }
  return $access;

 

 

最后

 

 

全文完~ 这些安全措施都比较基础,只能防御部分攻击手段。另外还有一点:不泄漏真实 IP 不等于不会被 DDoS 或者 CC 攻击。