SSL是互联网数据传输中对数据加密,而它就是加密的一套密钥。SSL是创建网站的必备,同时有些VPN工具例如Trojan也需要用SSL。很多卖域名的网站都卖SSL,一般是一年100元左右,还有更贵的。但是他们所实现的功能都是一样的。今天给你详细讲解如何免费获取一个SSL,而且功能和付费的是一样的。这里使用的是国际知名机构Letsencrypt免费提供的certbot的方式。
SSL是使用的TLS协议,在网站中对传输的数据进行加密。SSL是一套密钥,一般有cert和key组成。常见的https开头的网址,则是使用了SSL,访问它时会对数据进行加密以防止网络窃听。
开始之前的准备
在开始之前你需要准备一个云服务器和域名。
- 云服务器推荐搬瓦工VPS,它有到国内较快的网速,最便宜的只需49美元一年,也有更快更贵的满足更高的要求。使用优惠码BWHCGLUKKB可以更加优惠。需要更多服务器推荐,可以看一下这里的搬瓦工云服务器推荐。如果你不懂英语或不知道如何购买则看一下这个详细教程:搬瓦工服务器购买的详细教程
- 一个域名。要获取SSL,不论免费的,还是付费的。都需要事先有个域名,因为SSL的加密是针对某个域名的传输数据进行加密使用的。这里购买域名比较推荐国际知名排在前三的 Namesilo,可以使用优惠码TYVKVQ获得折扣。购买后需要配置DNS指向你的云服务器,如果不会配置DNS,可以查看这个详细教程 配置网站域名的DNS
搬瓦工服务器的优惠码,使用此优惠码可享受6%多的折扣(11月19日更新,下方优惠码不可用,搬瓦工目前没有可用的优惠码)
优惠码:BWHCGLUKKB(购买时输入有折扣)(12月01日更新,此优惠码不可用,搬瓦工目前没有可用的优惠码)
使用用Letsencrypt的certbot生成免费的SSL
进入这个网址:https://certbot.eff.org/ 这个是letsencrypt的cerbot的使用指南页面。你也可以进入letsencrypt的网页之后点击里面的certbot链接也是进入这个页面。

选择软件和系统,软件可以选择nginx(建议事先在系统中装置了web环境需要的LNMP这些软件),系统选择linux(snap),这里snap的意思是获取用来生成SSL的certbot软件是通过snap里获取到的(如果你不明白这里的意思,就暂时忽略)

之后就会跳转到操作指南页面。这里会介绍如何安装certbot。我这里给简单翻译一下,
第一步,SSH登陆到你的服务器(如果你不知道如何使用SSH登陆,可以下载一个putty,输入你的服务器的ip地址,用户名,之后登陆时输入密码)
第二步,安装snapd,这里有些系统已经安装了,可以忽略。如果你后面操作时提示命令不存在,则代表你的snapd没有安装,可以点击右边那个连接查看如何安装。一般使用sudo apt install snapd即可
第三步,清除现有的certbot软件。既然有了为什么要清除呢?那是因为它要清除通过apt安装的certbot,之后再通过snapd来安装。如果你不理解这里的意思,就暂时忽略。
第四步,使用命令 sudo snap install –classic certbot 来安装certbot

第五步,把certbot做连接到bin目录下,这里的目的是直接输入certbot即可调用这个软件。有时它会自动给你加这个连接那么你就不用操作这一步了。当你输入certbot,提示你找不到命令,则代表你没有做这个连接。

第六步, 选择用哪种方式生成SSL,这里的命令也就是用certbot生成SSL的命令。
- 第一种 sudo certbot –nginx 生成了SSL会自动编辑你的nginx配置文件并把SSL的路径配置进去。
- 第二种 sudo certbot certonly –nginx 只生成SSL,需要你手动编辑配置文件。我们这里因为SSL是给Trojan-go使用的,所以选择用这种方式。

这里详细说一下第六步:
输入命令后,会提示你输入你的域名,这里的域名就是你要之前购买好并配置好DNS指向你的这个服务器,推荐用namesilo,可以使用优惠码 TYVKWQ 来享受折扣。
之后会让你输入联系人的邮箱等信息,你跟着提示输入即可。最后就会生成成功并告诉你文件所在位置。一般是再/etc/letsencrypt下面的live(这个其实是软连接文件,通过它你可以找到真正文件,如果不懂即可忽略,这里用live下的那个访问是一样可以用的)
第七步,使用sudo certbot renew –dry-run来测试自动更新生成是否正确,certbot生成的SSL最大的一个优点是它再到期之前一个月会自动生成新的,所以这个命令就是测试它是否正常工作。

这里就是生成SSL的步骤,之后它会生成两个文件一个是cert,一个是key,你把这两个文件的路径配置到上面服务器端的配置中的那个SSL的部分,一个是cert,一个是key。
如果Trojan-go启动报SSL无法加载这样的错误,这可能是那个SSL的文件所在的位置的权限不够,Trojan-go无法访问,可以使用chmod为那个/etc/letsencrypt 下的SSL所在的目录赋予访问权限。另外一个方法是把它的位置从原来的位置复制一份移动到另外一个有访问权限的目录中,切记复制的不是live下的那个,因为它是软连接,而不是真正的文件,需要复制软连接所指向的那个文件。(如果你看不懂这里的内容就暂时忽略,用chmod方式赋权限最简单。因为复制文件后还要每次更新都要自动复制,所以需要写个小脚本来自动化复制)
如果需要更多有性价比的云服务器推荐可以看这里 云服务器推荐
发表回复