如何快速的给网站加持HTTPS

作者: jokeKing | 来源:发表于2016-11-22 19:05 被阅读4559次

    前言

    写在前面的话,因为小程序访问服务器需要有HTTPS的支持,很多小伙伴都遇到了给服务器配置HTTPS的麻烦。所以有必要介绍一下。
    给大家介绍的内容如下:
    1.了解HTTPS
    2.如何从startssl申请个人免费证书
    3.Nginx中配置HTTPS

    1.HTTPS是什么

    HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL。最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。
    目前很多互联网公司都已经开始全站使用HTTPS连接。
    HTTPS和HTTP的区别主要为以下四点:
    一、https协议需要到ca申请证书,一般免费证书很少,需要交费。
    二、http是超文本传输协议,信息是明文传输,https 则是具有安全性ssl加密传输协议。
    三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
    四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
    啦啦啦啦,我是知识的搬运工,上述知识来自百度百科,不一定全对哦。想要更深入了解HTTP和HTTPS的区别,请看这篇文章《HTTPS的七大误解》

    讲完了上面的文字理论,接下来可以跟我一步一步的从证书申请开始,完成HTTPS的配置,恩,看图说明。

    2.从StartSSL申请免费的SSL证书

    注册并登录

    1:先登录StartSSL官网,点击右上角的Sign-up链接进入注册页面


    StartSSL官网

    2:首次使用先注册帐号,注册超简单,只需要填写邮箱,获取验证码就好了


    账户注册-填写邮箱
    3:上一步发送验证码成功后,会到接下来的页面,填写你邮箱收到的验证码。
    点击Sign Up后即可成功注册。
    账户注册-输入验证码完成注册

    4.回到首页,点击Login,进入登录页面,登录方式有两种客户端授权登录(Client Certificate Login)和一次性密码登录(One Time Password Login)。
    我们选择一次性密码登录。网站会向你的邮箱发送本次登录需要的密码。

    进入登录页面

    5.在下面框中输入你注册时的邮箱,获取临时密码

    登录-获取临时登录密码

    6.在下一步的窗口输入收到的临时密码,确认后,进入控制台,好多英文,看着容易晕,关注两个Certificates Wizard(协助申请SSL证书) 和 Validations Wizard(协助验证域名)。


    登录成功进入控制台
    验证域名

    7.在申请证书前,先验证你是域名的拥有者。网站会通过给域名拥有者的邮箱发送确认的验证码来进行验证。点击Validations Wizard进入域名验证页面。

    申请SSL域名验证

    选择Domain Validation方式,点击Continue按钮,进入下一步,输入你的域名:

    输入待验证域名

    接下来,请输入服务器自动给域名拥有者的邮箱发送验证码,完成验证。

    输入验证码完成域名验证

    8.SSL证书申请,选择Certificates Wizard,进入SSL证书申请页面。这里面列出了网站提供的不同类型的证书服务。我们选择Free User类型的证书,点击DV SSL Certification(已经红框框出)链接。进入证书生成页面。

    申请证书
    证书申请页面

    在证书生成页面我们可以看到之前已经验证了的域名。接下来可以申请证书了,我们可以为一级域名x.com申请证书,也能为二级域名申请证书y.x.com。只能申请验证成功的域名的证书。

    在这里,我们选中Generated by Myself 选项,选择在本地生成CSR。复制这行代码在本地运行,请注意yourname.key yourname.csr是可以自己取名的,比如我取joke.key和joke.csr。
    在这一步会先要求你设置密码,后面会用到。
    Enter PEM pass phrase
    一共输入两次。
    后面就可以一直回车,回车,回车直到完成。

    接下来把生成的yourname.csr的内容粘贴到文本框中


    点击Submit按钮,服务器就会为你申请SSL证书。


    当你看到上面的提示,就说明你的证书已经声明成功了。

    下载证书

    成功申请证书之后,点击ToolBoox,进入Certificate list就能够看到刚才成功申请的证书了,而且证书的有效期是3年。

    Paste_Image.png

    点击Retrive,可以下载crt文件。


    接下来选择ToolBox的Decrypt Private Key,进入证书的私钥生成页面


    在Decrypt Private Key框中粘贴上之前生成yourname.key的内容,Passphrase中输入之前设置的密码



    点击Decrypt按钮,即可生成证书的私钥。


    将crt 和 私钥都保存起来,我的存为joke.xxx.crt和joke.xxx.key。

    为Nginx配置HTTPS证书

    接下来介绍如何给Nginx配置HTTPS证书,其他Apache或者IIS可自己搜索查看如何配置。
    1.将crk和key保存在服务器的文件夹中,比如我存放在/root/crt中。
    2.将原先域名访问配置进行修改,原先http的访问统一重定向为https的方式。新增443端口监听,并且设置
    ssl_certificate {crt文件的路径}
    ssl_certificate_key {key文件的路径}


    Paste_Image.png

    3.保存配置后,通过重启nginx使刚修改的配置生效。
    最好,我们就能通过浏览器来访问刚才申请了SSL证书的域名,在Chrome浏览器下会有一把锁着的绿色钥匙和https绿字。

    后记

    好了,本以为很快就写好了的说明,没想到还是要折腾个把小时。一步一步把申请ssl和部署到nginx的步骤走完,也是醉了。由于joke.imdao.cn是临时起意想申请来做笑话网站的子域名,DNS解析还没有生效,所以最后一张图是哪另外的子域名做说明的,请忽略这一瑕点。
    最后呢,恩,如果大家这篇文章有帮助,请收藏本文或者关注我,这很重要,正向动力。后续,我还会写些服务器和客户端开发的文章分享给大家,关注我了你们就能及时收到我的更新啦。
    谢谢。

    相关文章

      网友评论

      本文标题:如何快速的给网站加持HTTPS

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