让自己的网站用上HTTPS

848 阅读2分钟
       今天折腾小程序,需要用到https,网上找了一下资料,有合适的有不合适的,还有小坑,这里总结一下。
       一般给自己的网站搞https包括一下几步:

一. 购买服务器及域名、域名备案

      这个没什么说的,可以参考网上资料

二. 申请SSL证书

        这个网上有资料说阿里云有免费证书申请,结果找过去一看,都是收费的。于是乎便去腾讯云找了下,他家还支持免费证书申请,入口:



      后面还会让你选择验证方式,我选择的是文件验证,在自己域名的根目录下创建.well-known/pki-validation/fileauth.txt 文件,文件内容按腾讯云给的写入,过一两分钟刷新下就可以看到你的证书验证通过了。

     如果过了几分钟还是没验证,就检查下自己的网址是否能正常访问,或者文件是否有读权限。

 三.给服务器配置SSL证书(以Nginx为例)

     如果服务器安装的时候没有SSL模块,那么需要先安装一下,如果已安装,忽略这步。

     安装部分:

          获取原先的配置参数:

    nginx -V


         进入原先的安装源码包,在已经获取到的配置参数的后面加上--with-http_ssl_module(我的已经有了):

 ./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi --with-http_ssl_module

        然后执行配置,完成后进行make,记住不要make install ,不然会把现有已编译的覆盖掉;

        然后进nginx 的安装目录把原来的备份下(我的Nginx安装目录为/usr/local/nginx):

    cd /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

        我的源码包安装目录为 /downloads/nginx-1.12.2(记得把Nginx服务先停掉)

    cp /downloads/nginx-1.12.2/objs/nginx /usr/local/nginx/sbin/nginx

        提醒一个坑,如果你在/usr/local/bin或者/usr/bin中的nginx 是copy过去的话,你得同时也要把这个Nginx给替换掉。

    配置部分:

         

       这是我的配置,需要在原来基础上加的是圈出来的部分,ssl_certificate、ssl_certificate_key 填写腾讯云申请的证书秘钥地址(自己从本地上传到服务器)

           

       到这里就算配置完成了,然后重启Nginx,就可以进行https 请求了。