近期洒家买了个阿里云云服务器ECS玩玩,虽然国内的服务器网速快,但是毕竟在天朝,有的地方玩得也是有些不爽。以下是洒家这两天折腾的记录。
域名
洒家只是搞一个自己用的服务器,因此只需一个免费域名: http://www.freenom.com/ ,用Freenom DNS Server 填上自己的IP即可。
绕过备案
洒家弄好之后,用域名访问,出现了喜闻乐见的温馨提示:
该网站暂时无法访问
尊敬的用户,您好
很抱歉,该网站暂时无法访问,可能由以下原因导致:
原因一:未备案或未接入;根据《非经营性互联网信息服务备案管理办法》,网站需要完成备案或接入。请登录代备案管理系统进行操作。
原因二:网站内容与备案信息不符或备案信息不准确;根据《非经营性互联网信息服务备案管理办法》,网站内容需要与备案信息一致,且备案信息需真实有效。建议网站管理员尽快修改网站信息。
工信部备案查询点此进入,购买云计算产品可领取优惠券
备案?备个屁!
由于众所周知的原因,天朝的网站需要备案,但是过程极其繁琐。如果不备案,通过域名访问就会出现有一定概率干扰正常访问。
不管为了自由或者省事,想绕过备案干扰访问的话,可以(不知道能不能从原理上干掉过滤):
1. HTTP服务器监听其他的端口。目前来看好像只过滤80端口。
缺点:影响美观
2. 用HTTPS,加密流量就不会被搞(如果过滤发生在“中间人”位置)
搞一个HTTPS证书
仍然为了免费,洒家选择了 https://startssl.com/
参考这篇教程,内容有点过时,但是过程基本一致: http://www.oschina.net/translate/switch-to-https-now-for-free?cmp
然而洒家做完了之后点击原文发现了2016年的更新: https://konklone.com/post/switch-to-https-now-for-free ,原作者现在已经不推荐使用startssl,转而推荐SSLMate等。各位看官可以考虑一下。
基本流程大概就是注册,安装两个客户端证书,然后选择 Web Server SSL/TLS Certificate。为了验证网站所有权,有两种方式:(假如你的域名为example.com)
1. 向 [email protected] 等邮箱地址发一封邮件
2. 下载一个 example.com.html 放到网站根目录,startssl 会发出请求验证你的控制权
显然2更简单,然而由于上述备案的干扰,洒家尝试了很多遍都无法正常验证通过(似乎是100%失败的节奏)。无奈开始搭邮件服务器。
搭邮件服务器
由于毫无经验,瞎JB折腾一晚上 Postfix + dovecot + mysql,总是收不到邮件,总是被退信。一筹莫展之际,洒家考虑到目的只是接收一封邮件,想到有没有轻量级的程序实现了SMTP协议?随便一搜,得到了一条命令:
sudo python -m smtpd -n -c DebuggingServer localhost:25
关掉postfix、devecot服务,启动命令,还是收不到,于是洒家凭感觉改成:
sudo python -m smtpd -n -c DebuggingServer 0.0.0.0:25
发送邮件,验证码瞬间出现在终端上。
。 。 。 。 。 。
十多个配置文件瞎折腾一晚上,竟然不敌一条命令。
心疼运维。
可见对于只是接收一封邮件这种小事就不要挑战杂乱无章的各种配置文件了。
继续申请证书
下面只需要粘贴一份CSR即可。用openssl的命令,或者startssl提供的工具生成:
程序会得到一个私钥,保存好备用。把CSR粘贴到网站上,即可下载证书。
安装证书
继续搞配置文件。如果不会网上有一大堆教程,配置完上传私钥和证书,重启HTTP服务软件。