阿里云申请免费证书并搭建基于nginx的https服务器

chrome浏览器会将不使用的https的应用标记为不安全网站,Apple ATS政策,近几年来小程序的推广,以及近年来人们对隐私及数据安全意识的提高,人们逐步认识到了网络安全的重要性及紧迫性.这些都要求我们必须要提升互联网应用的安全性,互联网应用使用https就是提升网络全的一个重要组成部分.

本文主要介绍怎么在阿里云申请免费的https的重要组成部分的ssl证书及搭建基于nginx的https服务.

认识SSL

ssl是一种数字证书,类似于驾照、护照和营业执照的副本.因为配置在服务器上面,也称为服务器证书.

ssl证书遵循ssl协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密的功能.

ssl证书有收费的,也有免费的,当然了,收费的和免费的对用户来说享受的服务和安全级别是不同的,不过对于一般的个人用户来说免费的ssl证书基本可以满足需求.收费的ssl证书,从几十块到成千上万的价格不等.阿里云提供了免费的ssl证书.

在阿里云申请免费的ssl证书

我们可以进入阿里云网站,然后搜索ssl,然后进入到ssl证书服务的页面,直接选择“立即购买”就可以了(如果没有登录,显示的是“选购证书”,点击“选购证书”会让我们登录,登录后就变成“立即购买”了).

阿里云申请免费证书并搭建基于nginx的https服务器_第1张图片

进入ssl服务页面后,点击“立即购买”

阿里云申请免费证书并搭建基于nginx的https服务器_第2张图片

然后选择“免费版(个人)DV”

阿里云申请免费证书并搭建基于nginx的https服务器_第3张图片

选择好以后直接点击右下角的“立即购买”就可以了.这里只是走了一个交易流程,并不需要我们付钱.

个人免费版的ssl证书,只能保护一个域名,虽然是个人版的但是也支持企业申请,一个阿里云账户最多可以签发20张证书.

另外,一个主域名和一个子域名,属于2个不同的域名,需要两个ssl证书保护.

“立即购买”之后,确认订单信息,然后根据提示操作“同意服务协议”,然后就去支付.

阿里云申请免费证书并搭建基于nginx的https服务器_第4张图片

一般的购买流程,确认信息,支付,支付完成之后,会提示我进入“ssl证书控制台”.

阿里云申请免费证书并搭建基于nginx的https服务器_第5张图片

进入控制台页面后,控制台会直接弹出一个大的弹层告诉我们去申请证书

阿里云申请免费证书并搭建基于nginx的https服务器_第6张图片

然后在申请页面根据实际情况填写信息就可以了,在该页面中会有域名验证方式和CSR生成方式,如果我们的域名是在阿里云购买并且是在阿里云解析的,就直接选择默认的方式就可以了,如果域名不是在阿里云购买的,则可以根据实际情况自行选择

阿里云申请免费证书并搭建基于nginx的https服务器_第7张图片

填写好后点击“下一步”,然后就直接点击“验证”吧,如果在阿里云购买的域名并且在阿里云解析的,瞬间验证成功,然后就可以提交审核了.

阿里云申请免费证书并搭建基于nginx的https服务器_第8张图片

提交后,就等待CA的审核吧.

阿里云申请免费证书并搭建基于nginx的https服务器_第9张图片

一般情况下,提交审核后等个2,3分钟后就可以审核通过了

到这里,ssl免费证书已经申请完成了.接下来就是配置阿里云服务器和nginx了.

开启ssl的防火墙设置

我这是阿里云的轻量应用服务器,就拿轻量应用服务器作为例子吧.

进入到轻量应用服务器的控制台,瑞阿土所示,根据提示操作即可.

阿里云申请免费证书并搭建基于nginx的https服务器_第10张图片

配置基于nginx的https服务

上传ssl证书

从ssl服务控制台,下载已经审核并且已签发的ssl证书

 

然后根据服务器类型选择对应的证书即可.

 

阿里云申请免费证书并搭建基于nginx的https服务器_第11张图片

上传证书到服务器:为了方便管理,我把ssl证书上传到了nginx的配置文件目录下

/etc/nginx/cert/certificate.key
/etc/nginx/cert/certificate.pem

配置nginx​​​​​​​

upstream api {
  server 127.0.0.1:3000;
}
server {
    #listen       80;
    # 这部分的ssl_开始的配置是对ssl配置起作用的.    
    listen 443 ssl;
    server_name  api.lingyilab.com;
    ssl on;
    ssl_certificate cert/api.lingyilab.com.pem;
    ssl_certificate_key cert/api.lingyilab.com.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这个部分已经和ssl没有关系ll,这里是使用nginx做了反向代理服务
    location / {
        #root   /www_root/api.lingyilab.com;
        #index  index.html index.htm;
        proxy_set_header HOST $Http_host;
        proxy_set_header X-Real-IP $Remote_addr;
        proxy_set_header X-Forwarded-For $Proxy_add_x_forwarded_for;
        proxy_set_header X-Nginx-proxy true;
        proxy_pass http://api;
        proxy_redirect off;
    }
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

重启nginx

systemctl restart nginx

重启后测试效果,已经可了

 

阿里云申请免费证书并搭建基于nginx的https服务器_第12张图片

一般情况下到这里,就已经可以了,如果不行或者报错,应该是防火墙的问题.如果在轻量级应用服务器开放了443端口之后还不行,就再次手动执行一次,开放一下443端口,就可以了​​​​​​​

systemctl status firewalld  # 查看防火墙状态
firewall-cmd --zone=public --add-port=443/tcp --permanent  # 开放443端口
systemctrl reload firewalld # 重启防火墙服务

​​​​​​​

你可能感兴趣的:(运维,前端开发,nginx,ssl,https)