如何合法的、安全的发布自己的网站
作者:橘子 邮箱:1372722289@qq.com
软工课上,小组做出了不错的成果,是否想把它推广出去呢?想把它作为一个实际能服务到人的项目、而不仅仅是作为一个作业吗?如果是,那么本文可能会帮助到你。
1.本文涵盖了什么
本文包括如下内容:
- 如何购买域名
- 如何进行ICP备案和公安网备
- 如何配置DNS解析
- 如何方便地申请SSL证书,以及其他安全建议
2.准备事项
- 一台有公网ip的服务器。注意,如果是自己组的服务器,需要自己申请备案授权码,本文不涵盖这部分内容。本文使用腾讯云服务做示例。
- 身处中国大陆。其他地区的,申请流程有所不同。本文也不涉及企业资质的申请。
3. 接下来要做什么
首先确定自己的需求。仅有中国大陆IP需要做ICP网备,也即如果你的服务器在国外,或者港澳台等地区,则不需要ICP网备。注意,这和域名的注册地无关,即便域名在国外注册,服务器只要在中国大陆境内,就需要做ICP网备服务商才会接入,否则会被屏蔽。
其次是选定自己的备案地。一般,备案地就是申请人当前所在的区域,而不是服务器所在的区域。例如,如果申请京网备,但是人在上海,则不能正常备案。
流程主要涉及四次购买、三次备案,购买的分别是:服务器、域名、DNS解析、SSL证书;备案分别是:域名备案、ICP备案、公安网备。
其中,DNS解析和SSL证书都可以用免费的。所有备案均免费,无需支付任何费用。
接下来是流程:
3.1 购买域名和备案
可以在各种网站购买域名,这里就不推荐了,可以四处比对一下价格。特别注意域名不区分大小写。比如sample.com
和SAMPLE.COM
完全等价。
这里以腾讯云为例子,腾讯云的域名购买在https://dnspod.cloud.tencent.com/, 输入想要的域名,就可以查询了。不同的一级域名价格不同。
什么是一级域名? 例如, tool.sample.com中,com是一级域名,sample是二级域名,tool是三级域名。
一般,.com
一级域名最常见,也最贵。.cn
稍微便宜一点,由中国管理。还有一些少见的域名,例如.xyz
、.so
、.club
等等,可能会便宜一点。如果想长期持有域名,可以关注一下域名的续费,有可能有的域名第一年很便宜但是第二年就要交更多钱了。
此外,如果在国内购买域名,是要备案的。这个备案非常简单,审核一般几个小时即可通过。在购买完域名后,即可在购买处进行简单的备案,只需要准备身份证拍照上传即可。
注意该步骤有冷却时间,一般24h后才可以继续做ICP备案。
3.2 DNS解析
现在就可以使用域名而不是ip地址访问自己的网站了!怎么做到呢?那就是配置DNS解析。一般购买域名的服务商都会提供该功能,比如腾讯云是使用DNSPOD来提供此服务的。网址是https://console.cloud.tencent.com/cns, 如图1. 接着点击购买的域名会跳转到https://console.dnspod.cn/dns/, 界面如图2。
图1 |
图2 |
在这里你可以配置解析,配置规则在该页面也有说明,此处仅简单介绍一下A类解析,主要是用来解析ip地址的。*
是通配符,表示如果余下解析都不匹配,则返回该值;@
是根解析,比如你买的域名是sample.com
,那么该域名就会解析到@
所指代的ip上;www
是最常见的解析了,访问www.sample.com
时就会定向到该项指定的ip,其他都类似。
注意这里的解析内容是完全可以自定义的,比如图2中就可以把google.sampe.com
解析到Google上,这样访问google.sampe.com
时就会访问Google的DNS服务器(也就是8.8.8.8
),但这么做没什么意义,因为即使定位到别人的网站上,也没有证书,第三方用户一下就能发现这个网址是假的. 但是确实可以这么解析过去。
此处我用的解析是免费的,有诸多限制,但是完全够用了。比如解析更新时间满、数量有上限、域名别名有限制、无法批量等等,此处不涉及了。
虽然已经可以设置解析了,但是如果没有ICP备案,网站接入会被拦截。
3.3 可选项
如果你要开展全球业务(那也不会看这篇教程了吧,hh)可以购买CDN服务;如果你担心自己的网站被攻击,可以把网站代理出去,比如cloudflare(虽然变安全了,但是用户体验也差了)
3.4 ICP备案
这是本文的重中之重,也是最耗时间和最麻烦的地方。
首先你要选择备案地,确保本人在备案地,否则认证会不通过。备案地和服务器所在地无关,比如你可以买一个上海的服务器然后在北京备案。
ICP备案分两部分,分别是:代理商审批和地方通信管理部门审批。可以理解为,用户提交材料,交给代理商先审查一遍,然后由代理商提交给国家机关,由国家机关审核。这既方便了用户,也方便了国家。
3.4.1 我可以不做ICP备案吗?
如果你使用中国大陆境内的服务器,那么必须做。否则服务商不接入,这个网站会显示未做备案,不能正常显示。如果要跳过ICP备案,可以选购国外服务器,腾讯云、阿里云等都有卖。
3.4.2 代理商审核
代理商审核一般是1-2工作日,对个人来说,需要准备身份证。会有人脸识别和GPS定位等步骤,腾讯云是在小程序中来做认证的。该步骤会合适申请人拥有该域名,所属服务器,申请人的身份,申请人的联系方式,网站的用途,申请人所在地和申请的备案地一致。接着,服务商收到申请后会打电话确认,请保持手机畅通,早睡早起(我睡过了而错过了第一个电话,捂脸)。
一般,如果出现任何问题,例如网站简介不详细、联系地址不准确,客服就会和你沟通,不会将这些问题进入到下一环节。如果你有任何问题,例如不知道如何清晰准确地描述网站用途、不知道域名内容是否合规,都可以询问客服。
3.4.3 地方通信管理部门审批
各个地方的流程略有区别,准备事项也略有不同,申请时长也不太一样。比如我申请时,北京的审核时长是15-20个工作日,所以务必规划好自己的申请时间,避免错过重要事项,比如软工课要用的话,最晚第十二周左右就要申请了,再晚就来不及了(不过软工课也不一定要自己准备一个域名)。
在审核过程中,会收到备案核验短信,收到后需要在24小时内到工信部管理系统(https://beian.miit.gov.cn/)确认。具体流程可以参考:网站备案 备案短信核验说明-备案后续流程-文档中心-腾讯云 (tencent.com). 完成该验证后,只需要等待了。该步骤一般不会接到电话。
3.5. 恭喜!接着完善你的网站
恭喜你!走到该步骤,说明你的ICP备案已经顺利完成。此时,你已经可以用域名访问你的网站了。
但是,同时你也有义务维护好你的网站,你必须在网站下方悬挂ICP备案标识,代码示例如下:
当然这样直接挂上去并不好看,可以加入text-align:center;
来居中、添加hover
属性来设置鼠标悬浮时变色等等,就可以自由发挥了。
此外,虽然你的网站可以正常访问了,但是最好还要继续做公安网备。虽然我参看了各处教程,都没有说该步骤是强制的,而是说网站开通后30日内进行公安备案。该步骤耗时不太长(相比于ICP备案),而且备案期间不影响正常使用,所以我强烈建议要做公安网备。
3.6 公安网备
公安网备的审批不影响网站的正常接入。
登录全国互联网安全管理服务平台 (beian.gov.cn),选择联网备案登录,依照引导注册和登录。也支持外部链接登录,比如如果你有国家政务平台的账号,可以用国家政务平台的账号登入公安部平台,然后用公安部平台的认证登入全国互联网安全管理服务平台。看起来很绕,但实际上核心id都是你的身份证号,如果你想少注册一个账号就这么干吧。
公安网备时需要再次填写网站用途并且选定网站类型,特别需要注意的是,网站的功能需要仔细选择。比如是否是交互式网站,是否涉及盈利,是否涉及医疗保健行业等等。
在成功后,需要悬挂公安网备的备案标识,该标识的格式更加严格。
备案成功后可以在对应的网站信息页下载html代码(此处10000000000001
换成你的备案号):
<div style="width:300px;margin:0 auto; padding:20px 0;">
<a target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=10000000000001" style="display:inline-block;text-decoration:none;height:20px;line-height:20px;">
<img src="" style="float:left;"/>
<p style="float:left;height:20px;line-height:20px;margin: 0px 0px 0px 5px; color:#939393;">京公网安备 10000000000001号</p>
</a>
</div>
4. 如何让自己的网站变得安全
至此,你的网站已经合法啦!(除非你干坏事_(:зゝ∠)_
)但是,她也就暴露在了公网环境下。如果你的域名选的很有寓意,说不定会被某些坏人盯上,所以已要注意保护自己的网站。
这里不会事无巨细的说如何做,但是可以提供几点仅供参考的注意事项。
4.1 SSL证书
给自己的网站配备SSL证书吧!在《在软件工程课中配置SSL证书》一文中,已经介绍过了文件验证的方式申请SSL证书。而里面也提到了,DNS方式验证会更加方便。由于这个网站已经完全属于你名下,所以你可以通过配置DNS解析的方式来申请SSL证书。
具体流程非常简单,以腾讯云为例:
进入网站https://cloud.tencent.com/, 不要在主页直接搜索“SSL证书”,那里购买页面的整数都非常贵,而我们的目的是免费申请。选择右上角的控制台(图3),接着在控制台中搜索SSL证书(图4);然后点击申请免费证书(图5),选择一个免费证书。
图3 |
图4 |
图5 |
接下来,填写必要的信息,密码留空表示自动生成。验证方式选择自动添加DNS解析验证。这样,只需要数分钟就可自动验证完成。在图2中,最后一条解析就是用于验证的解析。
拿到SSL证书之后,就可以http变https啦!
4.2 防火墙
好好管理自己的服务器,关闭不需要的端口。可以试着用nmap
扫一扫自己的网站。课上老师还以开玩笑的口吻说这是黑客必备工具,实际上它也确实强大,可以扫描服务器开放了哪些端口,端口可能提供何种服务,协议版本是什么——接下来就可以根据协议版本去找该版本的漏洞。所以尽量不要开放过多的端口,每个端口都是一道门。
4.3 告警
一般的服务器都会设置ssh功能方便远程连接,你可以试试登录自己的服务器时故意试错几次密码,接着你会收到一封邮件,警告你服务器可能遭受攻击。腾讯云有这种服务,还提供其他告警功能,例如入网速率过高、CPU负荷过高等,超过阈值会给你发短信或者邮件提醒。
4.4 代理
可以把自己的网站代理给第三方,比如Cloudflare。既能做CDN也能防范网站攻击,虽然变得安全了但可能用户体验变差(因为访问时会有人机验证),而且收费。
5. Q&A
- Q: 如果我在腾讯云做了备案,想用阿里云的服务器,可以吗?
A: 可以,你需要接入备案。参考:网站备案 接入备案相关-常见问题-文档中心-腾讯云 (tencent.com)
- Q: 这个网站我不想要了,我需要做什么吗?
A: 需要!非常需要!主动注销备案不是法律上的必要流程,但是旧的备案信息若不删除,后续有人买了该域名,则可能直接使用你的信息做违法犯罪活动!所以如果网站不使用了、域名不属于自己了,一定要去注销备案!
- Q: ip地址变更了需要重新备案吗?
A: 需要。
- Q: 自己组的服务器,或者用的学校的服务器,如何备案?
A: 没有代理商给你帮忙了,你可能需要主动联系工信部或者地方通信管理部门进行审批,具体细节我就不清楚了。如果你实在有类似需求但是不想弄得很麻烦,你也许可以购买大流量轻量级服务器做流量转发,转发端(在服务商)做备案,把多数后端例如数据库放在自己的服务器上。
- Q: 域名好贵,服务器好贵,能退款吗?
A: 我不知道啊,问服务商呗_(:зゝ∠)_
,一般服务器可以域名不行(不过有的买长期的是真的划算,提前做好规划,此外能免费的就白嫖!比如SSL证书、DNS解析)
6. 参考链接和类似教程
- 腾讯云,备案详细流程和指引:网站备案简介_网站备案购买指南_网站备案操作指南-腾讯云 (tencent.com)
- 腾讯云各地备案用时估计:网站备案 备案审核-常见问题-文档中心-腾讯云 (tencent.com)
- 经营性质备案:网站备案 经营性备案常见问题-备案后续流程-文档中心-腾讯云 (tencent.com)