这期内容当中小编将会给大家带来有关nginx中怎么配置https证书,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
首先我们来回顾一下https的原理,首先我们看图:
第一步、客户端发送请求,服务器将证书发送给客户端,证书的本质是第三方CA的私钥加密的内容,其内容是服务器的公钥。
第二步、客户端接收到证书后,用操作系统和浏览器内置的CA公钥去匹配验证证书,如果能解密,说明请求的是目标网站,不是中间人。
第三步、用CA公钥解密证书,并将服务器公钥解密出来。到这一步,客户端安全的拿到了服务器端的公钥。
第四步、生成随机数,用服务器公钥加密随机数发送到服务器端。
第五步、服务器端用服务器私钥解密信息,得到随机数
我们仔细阅读上面的流程,我们将客户端和服务器端用到的工具分一下类:
客户端用到的如下:
1、CA机构的公钥:已经内置到系统中不需要处理
2、公钥证书:服务器端发送给客户端的,客户端会自动用CA公钥解密证书
3、服务器公钥:客户端用CA公钥解密证书获得
4、随机数生成对称秘钥:自动生成
服务器端:
1、公钥证书 需要去申请
2、服务器端私钥 需要服务端手动生成
客户端需要的工具不需要我们配置,主要是服务器端的工具,我们看到服务器端需要公钥证书和服务器端私钥,这两个东西如何来的呢?
首先我们在服务器端用ssh-keygen命令来生成公私钥,在服务器端命令行中执行,ssh-keygen会在服务器的"~/.ssh"目录中生成两个文件 id_rsa,id_rsa.pub,前者不带pub后缀的为私钥,后者带pub后缀的为公钥。
得到了服务器端的公钥和私钥后,我们需要用服务器端的公钥去申请证书,这里大家如果是去向一些收费的CA机构申请证书的话,CA机构的客服一般会想你要你的服务器公钥和你的网站信息,然后CA机构用CA机构的私钥加密你的服务器公钥得到公钥证书,然后CA机构会将公钥证书颁发给你。
经过上面两部操作我们就会得到公钥证书和服务的私钥,拿到这两个文件我们可以使用配置https协议的网站了。
这里要说明一下,我们向有些CA机构申请证书时,它不需要你提交服务器公钥,而是它会自己生成一对服务器的公私钥,然后把服务器公钥用CA私钥加密成证书,和服务器私钥一起发送给你,阿里云的免费证书就是这样操作的。
首先在阿里云的控制台点击 SSL证书
进入相应的页面,然后点击购买证书:
进入相应页面,我们购买免费的DV证书即可,当然如果你要求安全级别更高,可以购买 DV或者EV:
这样我们就购买完证书了,然后根据域名去申请证书就可以了,这里和传统的证书机构申请证书还不太一样,一些其他的CA机构需要你把服务器公钥和网站信息发给客服,客服会把证书颁发给你。
购买了免费DV证书后,就可以去申请了,接着我们去申请证书,界面如下:
我们在阿里云购买的是申请证书的权利,所有可申请的证书全在这个列表中了,点击申请,填写要部署https的域名:
1处我们填写我们的域名,可以是二级域名或者一级域名,因为是免费的不能用通配符。
2处我们选择自动DNS验证,这里验证申请的证书用的域名所有权是你的,也就是说你不能用别人的域名申请https证书。
3处这里需要我们呢生成csr文件,这个文件是干嘛的呢?其实就是你的网站的信息,你可以让阿里云帮你生成,这样的话你就选择系统生成,如果你不愿系统生成也可以自己生成。
自己生成csr的话可以去网上找免费的工具来生成,如下:
我一般是选择系统生成。
之后提交申请,申请通过后,会在下面栏目中出现证书下载地址:
我们点击下载即可得到两个文件,这里我们选择与nginx匹配的版本:
两个文件如下:
pem结尾的为公钥证书,key结尾的为服务器私钥,私钥一定不要泄露出去。
然后我们通过改写nginx的配置文件nginx.conf来配置https服务器。
server { listen 443; server_name localhost; ssl on; root html; index index.html index.htm; ssl_certificate cert/a.pem; ssl_certificate_key cert/a.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; }}
配置有点多,但是主要的是1、4、7、8行的配置。
第一行监听443端口,https默认端口为443,第四行开启ssl,第7行配置公钥证书,第8行配置服务器私钥。
然后重启nginx服务即可。
上述就是小编为大家分享的nginx中怎么配置https证书了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。