美文网首页
申请免费SSL证书,配置Nginx支持HTTPS

申请免费SSL证书,配置Nginx支持HTTPS

作者: FicowShen | 来源:发表于2018-05-23 12:27 被阅读31次

    1.去腾讯云注册帐号,申请免费SSL证书点击直达

    申请证书




    申请证书:

    免费证书,有效期1年




    输入备案域名的信息

    内容纯属虚构




    进行文件验证

    进行文件验证

    如果选择DNS验证,就去该域名的管理页面添加DNS解析。
    如果选择文件验证,就去该域名指向的web服务器的静态文件目录内新建文件。
    具体内容,请参考腾讯云的文档。




    申请成功

    申请成功




    下载证书,解压

    Nginx需要的两个文件



    然后,请按照腾讯云的文档对Nginx进行配置。
    不过,这里可能会遇到好几个!!!

    坑1

    修改好Nginx配置后使用nginx -t测试配置,如果发现ssl不能识别,极有可能是Nginx在编译的时候没有配置SSL的支持选项。
    错误包含此内容:[emerg] unknown directive "ssl",说明需要对Nginx进行重新编译并安装、重启。

    到解压的nginx目录下
    ./configure --with-http_ssl_module
    
    切记不能make install 会覆盖!
    make
    
    将原来的nginx备份 备份之前先kill当前正在启动的nginx
    cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
    
    make之后会在当前目录生成 objs 目录
    cp -rfp objs/nginx /usr/local/nginx/sbin/nginx
    
    然后重新启动nginx
    /usr/local/nginx/sbin/nginx
    

    坑2

    云服务器并没有开启 443端口!
    需要去云服务器配置页面修改安全组(阿里云把这个叫做安全组,请根据你的实际情况进行配置)。
    开启443端口后,重启一下Nginx,然后查看Nginx是否成功监听了443端口。

    lsof -i :443
    

    坑3

    如果你要让Nginx强制将HTTP转为HTTPS,也就是将80端口的请求转发至443端口。
    你可能需要在监听80端口的server中加入以下配置:

    return 307 [https://$server_name$request_uri](https://$server_name$request_uri);
    

    如果你的前端是App而不是Web,建议你测试一下App内的非GET请求是否可以正常识别(因为我这里一直是异常的,最后我选择让HTTP和HTTPS并存)。

    参考文章:

    腾讯云 - 域名型证书申请流程
    Nginx如何安装https-ssl证书
    nginx:[emerg]unknown directive "ssl"

    相关文章

      网友评论

          本文标题:申请免费SSL证书,配置Nginx支持HTTPS

          本文链接:https://www.haomeiwen.com/subject/khhrjftx.html