阿里云免费SSL正式在nginx上的部署实践
现如今大多数的网站都采用https的方式,因为它比http更安全,HTTPS即HTTP + SSL/TLS,在HTTP的基础上对数据传输进行加密,使网站更加安全。
所以这次也在小编的个人网站上进行实践一下。大部分SSL证书是收费的,也有一些是免费的,详见:11中免费获取SSL证书的方式。我是用阿里云进行实验。当然也可以用腾讯云百度云之类的,其实都是大同小异的。
准备工作
无论是阿里云、腾讯云还是百度云都需要先进行注册、实名认证。腾讯云可以直接用微信扫一扫登录。(这年头什么网站都要手机号实名等等,感觉在互联网的世界已经没什么隐私可言了)。
其次需要有由注册一个域名,并且已经解析到相关的服务器。
然后就是你已经部署了一个网站在虚拟主机上,并且已经弄好了域名映射,比如使用Nginx,完成了相关的配置。且网站能够正常访问了。
开始申请证书
在以下网址进行购买:
云盾证书服务(包年)购买-阿里云
选择免费型DV SSL证书,免费为期一年,只支持一个域名,一个账号最多申请20个免费证书。对于个人博客或微型网站来说应该足够了。
选择免费型DV SSL证书@2x.png
付款成功之后呢,就可以在SSL证书管理控制台上看到证书列表了。
证书验证
在证书列表右侧点击申请,填写相关信息后进行验证。
证书申请验证@2x.png
有三种域名验证方式:
- 自动DNS验证,这种方式需要域名使用阿里云DNS。
- 手动DNS验证,需要拥有域名DNS管理权限,手动添加一条TXT记录到DNS的解析记录中。
- 文件验证,需要拥有站点管理权限,在站点根目录添加指定文件进行验证。
我的域名虽然是使用阿里云的,但我想试一下文件验证方式。
验证信息@2x.png这里文件验证方式需要将fileauth.txt文件下载下来,然后在站点根目录下创建.well-known/pki-validation
目录,然后通过scp或ftp工具上传到该目录下。
点击验证来验证域名。这里验证往往可能会出现问题,可以参考:
https://help.aliyun.com/knowledge_detail/48720.html?spm=5176.11065259.1996646101.searchclickresult.459c58a4wc83b4
需要注意的是,我们填写的www.xxx.com是二级域名,阿里云之后发送给CA的就变成了xxx.com顶级域名了,如果这顶级域名没解析,就会有问题。(我折腾了一翻,真的很蛋疼)。
可以分别ping一下这两个,即www.domain.com和domain.com,看是否有返回IP地址,都有的话,就是已经做了解析的了。
如果顶级域名没做,则需要添加一条解析记录。即添加一条记录值为@
的记录。
所以只有http://www.domain.com/.well-known/pki-validation/fileauth.txt 和
http://domain.com/.well-known/pki-validation/fileauth.txt 都访问成功后才能够验证通过签发证书。
部署SSL证书
本人是在Linux Nginx上进行操作的。
首先安装Nginx就不多说了。相信大家都会,不会的度娘搜一搜跟着安装就行。
配置开启ssl
安装Nginx后,进入Nginx的配置目录修改配置文件,如/usr/local/nginx/conf/nginx.conf
,打开后找到如下所示位置:
加上如下的证书路径,配置后信息如下:
配置后的信息@2x.png
下载证书并上传
证书信息验证通过后(一般经过几分钟扫描到文件后很快就会通过),如下:
已签发的证书@2x.png
然后下载证书:
两个证书@2x.png
把这两个证书上传到服务器目录,一般放在:/usr/local/cert
中。或放在/nginx/ssl中,都可以。
然后在配置,接上一步,配置证书路径。
验证
重启Nginx后,用Chrome访问域名查看。
Nginx相关操作:
查看Nginx配置文件是否配置正确:
$ ./nginx -t
重启Nginx:
$ ./nginx -s reload
最后,在浏览器上出现绿色的安全锁,证明SSL证书配置正确了。
火狐打开https网站提示可信任的网址@2x.png