阿里云 ECS,nginx 设置免费 SSL 证书,http 跳转 https
2018-11-13| 程成| 334| 0| Nginx

在阿里云 ECS 中,如何免费设置 SSL 证书,网站 http 协议更换为 https 协议。


一、申请免费 SSL 证书



1、【控制台】-【域名】-【管理】

image.png



2、【免费开启SSL证书】

image.png



3、【单域名免费证书】,注意黄字提醒


image.png


4、【申请】-【填写申请】-【验证信息】-【验证】

image.png


image.png



image.png



5、等待十分钟,【下载】证书,我这里选择 nginx 证书下载

image.png


解压出来是一个 .crt 文件和 .key 文件,上传到你服务器的 nginx 文件夹。



二、配置 nginx


server {
    listen  443 ssl http2;
    server_name www.cc1021.com cc1021.com;
    ssl_certificate 你上传的 .crt 文件路径
    ssl_certificate_key 你上传的 .key 文件路径
    ssl_session_cache   shared:SSL:1m;
    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;
    
    #以下配置省略
}



如果你想关闭你的 http 访问,添加下面这段代码


server {
     listen 80;
     #listen [::]:80;
     server_name www.cc1021.com cc1021.com;
     #将HTTP 301 重定向到 HTTPS 开始
     rewrite ^(.*)$ https://$host$1 permanent;
     #将HTTP 301 重定向到 HTTPS 结束
     index index.html index.htm index.php default.html default.htm default.php;
  }



如果一站点既要80 http访问,又要443https访问。


要让https和http并存,不能在配置文件中使用ssl on,配置listen 443 ssl;


实例


server
{
    listen 80;
    listen 443 ssl;
    server_name www.iamle.com;
    index index.html index.htm index.php;
    root 你的 root 路径
    #ssl on; 这里要注释掉
    ssl_certificate 你上传的 .crt 文件路径
    ssl_certificate_key 你上传的 .key 文件路径
    #以下配置省略
}


输入

nginx -t

查看你的 nginx 配置是否合法,合法的话会返回 successful


nginx -s reload

重新加载你的 nginx 配置文件


开启你服务器的 443 端口


service nginx reload

重新启动你的 nginx




之后,访问你的 域名 ,http 成功转化成 https


image.png


这样你就免费的安装了 SSL 证书, http 完美切换成 https 协议。




×
作者:程成
QQ:492245711