阿里云ECS上nginx安装免费证书

可在阿里云购买免费的Symantec品牌的单域名证书(每个子域需要单独购买免费的证书),购买地址:https://common-buy.aliyun.com/?commodityCode=cas#/buy

由于一次只能购买一年,所以一年后还需要再重新购买和安装。

阿里云购买Symantec单域名免费证书
阿里云购买Symantec单域名免费证书

 

购买后按照流程需要一段时间审批下来,审批下来后在SSL证书控制台查看并下载证书zip包,比如我的下来下来是:3021562_rongmayisheng.com_nginx.zip,解压后能看到两个文件:3021562_rongmayisheng.com.key、3021562_rongmayisheng.com.pem。

接下来是把这两个证书文件复制到对应ECS的nginx的conf/cert(我机器上具体目录是/usr/local/nginx/conf/cert)目录下,然后参考阿里云的官方文档来配置nginx.conf(我机器上具体目录是/usr/local/nginx/conf/nginx.conf):

在Nginx/Tengine服务器上安装证书

期间我碰到两个问题,通过这两篇文章得到解决:

  1. Nginx配置SSL证书时——nginx:[emerg]unknown directive ssl错误
  2. nginx: [emerg] the “ssl” parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf

最后一步,需要在ECS上增加https 443端口的安全组入口流量,操作路径:进入ECS“实例列表”–>实例后面的“更多”–>“网络和安全组”–>“安全组设置”–>“安全组列表”tab–>找到之前配置了http 80端口的安全组并点击后面的“配置规则”–>“添加安全组规则”按钮。配置如下:

阿里云ECS配置https 443端口的安全组规则
阿里云ECS配置https 443端口的安全组规则

至此访问自己的域名应该能用https://开头了

这里附上我的完整配置: