阿里云LINUX服务器配置HTTPS(NGINX)

背景说明



服务器:阿里云 ECS,操作系统:CentOS 6.5。



部署配置说明


第一步,安装nginx



之所以要先安装 nginx,是因为下面配置域名解析的时候可以直接在浏览器看到效果,当然了,先配置域名,然后 ping 一下也是可以的



下载Nginx源码包,解压源码包,进入解压后的目录,编译配置,命令如下:


./configure --prefix=/usr/local/nginx  --with-http_ssl_module


以上命令将nginx安装到usr/local/nginx目录下,并启动ssl功能。事先确保服务器已安装open-ssl包,如没安装可用如下命令在线安装:


yum -y install openssl openssl-devel,除此之外还需要安装PCRE、zlib


然后执行make  && make install命令开始编译安装,直到提示安装成功即可。可到/usr/local/nginx/sbin目录下输入./nginx命令,即可以默认配置文件启动,如果需要指定配置文件,则用如下命令:

./nginx -t -c /usr/local/data/my-nginx.conf  ,检查配置文件并指定一个配置文件。


安装过程中可能会提示缺少其它依赖包,根据提示安装即可。
启动之后,如果不出意外,可以访问服务器,看到 nginx 默认页面。


第二步,申请及解析域名



为什么要申请域名,这就不多说了,网站想要外部访问,总得有个域名吧,难不成直接用 IP 访问吗。就算你非得用 IP访问,那对不起,下面配置 HTTPS证书的时候需要填写域名。




  • 购买域名

  • 购买完域名后,需要完成一系列相关信息的填写,可按提示完成即可。然后进行域名解析


    1. 进入云解析,这里会看到所具有的万网域名,选中一个域名,点击下方的“添加解析”按钮。


    阿里云LINUX服务器配置HTTPS(NGINX)



      记录值即对应的服务器 IP,点击添加即可。一般是一分钟内生效。


      阿里云LINUX服务器配置HTTPS(NGINX)



    1. 通过刚刚配置好的解析,例如 www.51ask.org 即可访问这个域名指向的服务器。第一步安装了 nginx ,那么现在访问这个域名,应该会出现 nginx 默认页面。如果提示 DNS 解析有问题,可能是本地或 DNS 服务商有缓存,清除缓存或等一段时间后再尝试。清除缓存请参考:清理DNS缓存  文章中内容。





第三步 申请 SSL 证书



  • 进入阿里云控制台,“安全(云盾)”下的“证书服务”,点击购买证书,选择免费型 DV SSL,按提示走就可以,反正不用花钱的。


  • 接下来到我的订单页面,看到证书状态是“待完成”,点击“补全”链接


    阿里云LINUX服务器配置HTTPS(NGINX)


  • 接下来要求输入一个域名,因为免费证书只支持一个域名,这里可以写你申请的域名或者子域名也可以,例如a.com或者api.a.com。


  • 之后填写个人信息,这里有个域名验证类型,分为DNS验证和文件验证,具体验证方式可查看 阿里云帮助手册。


  • 最后到上传信息这一步,一般选择系统生成 CSR。


    阿里云LINUX服务器配置HTTPS(NGINX)



  • 这里选择的是 DNS 验证方式,点击进度按钮,会弹出提示框,按提示框中的操作添加一条DNS记录。(文件验证方式会要求将一个html文件放到服务器指定的目录下,然后通过url访问到即可验证成功)


    阿里云LINUX服务器配置HTTPS(NGINX)



  • 直到我的订单页面显示证书状态为已签发,即表示证书申请成功。



  • 再之后会在我的订单列表中,操作栏看到下载按钮,点击按钮,跳转到证书下载页面,这里提供了nginx、Apache、Tomcat等证书下载


    阿里云LINUX服务器配置HTTPS(NGINX)



  • 这里选择 nginx 证书。




第四步 在 nginx 中配置 HTTPS



  • 将下载下来的证书解压,里面有两个文件一个是.key,另一个是.pem,把这两个文件传到服务器的一个目录中。



  • 找到 nginx 配置文件,打开编辑,加入如下代码:



    server {
    listen 443 ssl;
    server_name localhost;
    ssl on;

    ssl_certificate /root/data/cert/test.pem;
    ssl_certificate_key /root/data/test.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 ^~/test {
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto https;
    proxy_pass http://127.0.0.1:8080/test;
    }
    }


  • 最后重启 nginx 即可。


0 个评论

要回复文章请先登录注册