背景:
之前项目都是为集团内部提供服务的,很多接口都是内网访问,网络安全方面考虑不多。但是随着业务发展,可能要对外提供互联网服务了,一些安全方面的因素也要逐步考虑计划。
这次,就从最基本的域名安装SSL证书开始,将http协议升级为https协议。
一、购买申请SSL证书
直接进阿里云官网购买证书,暂时选择免费版本测试。
购买后进入证书控制台,需要进行证书申请。
需要注意的是我们的ssl证书是和域名绑定的,所以需要提供域名。并且阿里云免费证书只支持绑定一个域名,收费版支持多个域名(通配符)
关于这个域名验证方式,它提示我绑定的域名已在阿里云的云解析服务中,这个其实是假的,我的域名是在腾讯云买的,在阿里云并没有云解析服务。
但是没关系,我们依旧可以选择自动DNS验证,以及csr生成方式也是选择自动。
上面的DNS解析验证比较关键,需要我们去域名解析处配置,我是腾讯云买的域名,所以我去腾讯云解析配置。
新增一条域名解析策略,将记录类型:TXT、主机记录:_dnsauth、记录值:201911060000000ajcb4f4配置完毕后,等其生效。
然后去阿里云证书申请处点击验证,会提示验证成功。
之后就可以看到我们的证书变成已签发的了。
然后就可以下载证书了。我选择的是Nginx版本证书。
下载到本地的压缩文件包解压后包含:
.crt文件:是证书文件,crt是pem文件的扩展名。
.key文件:证书的私钥文件(申请证书时如果没有选择自动创建CSR,则没有该文件)。
二、通过nginx配置SSL证书
先按阿里云的nginx证书帮助文档操作:
1.在Nginx的安装目录(我的是/usr/local/nginx
默认目录,注意不是解压目录)下创建cert
目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为a.key;
2.添加nginx.conf
配置:
server {
listen 443;
server_name localhost;
ssl on;
root html;
index index.html index.htm