使用自签名证书 防止服务器IP地址泄露
本文最后更新于 118 天前,其中的信息可能已经有所发展或是发生改变。

最近比较忙,家里有一些事情,各个专业课也都开始做实验,好不容易找出时间准备写篇文章,结果我买的二手搬瓦工还被找回了(一定不要买二手搬瓦工!!详情可以看我在Hostloc发的帖子)......又重新购置服务器,安装LNMP,一切重新开始......还好有之前的文章做记录,少走了些弯路。

新的服务器提供商是AkkoCloud,一家国人二次元IDC商家,去年九月份开始运营,没有什么黑历史,于是就上了这家的圣何塞CN2 GIA,电信移动去程GIA(移动去程也是GIA,很少见了,瓦工已经去程移动自有线路直连了),联通去程走he;回程三网GIA,线路还是很香的,延迟比瓦工要低,价格也很便宜。希望这辆车能平稳吧~

不过价格便宜就肯定有比其他VPS服务商缩水的地方:后台没有备份、快照功能,只有启动VPS、重启,重装系统,VNC等比较基础的功能。因此这台VPS我就只能用,不能“玩”了,玩砸了没有快照,没法回滚...所以以后关于VPS的文章可能会少一些吧!

接下来就要面对更多的实验和期末考试,恰逢这段时间没灵感,可能接下来的一个月,更新频率会低一些,还请谅解~等有时间调整好,会慢慢填坑的!

目的

在网站上了CDN之后,提高站点访问的同时,也可以一定程度上防范攻击,保护了源站IP。毕竟如果攻击者拿到的是CDN节点的IP,一般情况下只能对CDN节点进行攻击,我们通过对CDN节点进行配置,配置WAF防火墙,进行流量清洗,攻击请求就不会到达源站服务器。但是如果攻击者知道了源站的IP地址,攻击者就可以直接将DDOS、CC攻击施加在源站IP上,站点很快就会崩溃。

上面讲的是一般情况,CDN能够一定程度保护你的源站IP。但是启用CDN一定能保护源站IP不被泄露吗?答案是否定的。Nginx服务器在直接以HTTPS访问IP地址时,如果没有为IP地址绑定专用的HTTPS证书,那么Nginx就会返回一张配置文件中已经存在的证书进行HTTPS通信。如果你的网站是example.com,直接以HTTPS方式访问你的源站IP,Nginx就会返回example.com的HTTPS证书。攻击者可以利用这一点,用肉鸡,扫描全网的IP地址,对全网IP尝试建立HTTPS连接。如果扫描到一个IP地址,返回了你网站的证书;同时这个IP不是CDN节点,那么这个IP所背后就是你的源站,你的源站就已经被暴露了。

那么我们能不能不让Nginx返回站点的HTTPS证书,而是返回一张其他的证书呢?答案当然是能,否则我也不会写下下面的文字咯~下面就简单介绍一下,如何使用自签名证书,放在服务器IP地址泄露。

网络上就有一个大名鼎鼎的搜索引擎censys.io,你可以在上面查询一下自己的源站IP是否暴露,如果暴露,一定要更换源站IP,然后用我下面的方法做好伪装。

操作步骤

使用OPENSSL生成一张自签名证书

这张证书是自签名证书,没有证书颁发机构做背书,浏览器肯定是不识别的。但我们只是用它来保护我们的服务器IP,不是用它对外提供服务的,因此我们就是需要一张自签证书,它不需要被任何人信任。

  1. 先cd到nginx配置文件的ssl文件夹下,CentOS的路径是/usr/local/nginx/conf/ssl,把证书创建在这个文件夹里,如果更换服务器,复制配置文件同时也会把生成的证书复制上,一次生成,永久使用:)
  2. CentOS默认安装了OPENSSL,所以就直接开始吧,先生成私钥:openssl genrsa -out null.key 2048这一步会生成一个2048位的私钥,我我们就用它来签名。
  3. 生成CSR(Certificate Signing Request):其中C代表的是国家,ST代表的是state省份,L代表Location位置,O代表组织Organization,CN代表域名。

    openssl req \
        -subj "/C=US/ST=NULL/L=NULL/O=NULL/OU=NULL/CN=NULL/[email protected]" \
    -new \
    -key null.key \
    -out null.csr
  4. 使用私钥和CSR生成证书,这样我们就得到了一张有效期3650天的自签名SSL证书了。

    openssl x509 \
        -req \
        -days 3650 \
        -in null.csr \
        -signkey null.key \
        -out null.crt

配置Nginx配置文件

编辑Nginx的主配置文件:vim /usr/local/nginx/conf/nginx.conf,在server大括号里面替换添加下面的内容:

ssl_certificate /usr/local/nginx/conf/ssl/null.crt;
ssl_certificate_key /usr/local/nginx/conf/ssl/null.key;

之后重启Nginxservice nginx restart,大功告成啦!

参考资料

如何创建自签名的 SSL 证书 - 简书

本文永久链接:https://blog.xmgspace.me/archives/generate-a-self-signed-certificate.html
本文文章标题:使用自签名证书 防止服务器IP地址泄露
如文章内无特殊说明,只要您标明转载/引用自Xiaomage's Blog,您就可以自由的转载/引用文章。
授权协议:署名-非商业性使用-相同方式共享 4.0 国际(CC BY 4.0)
暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇