HTTPS加密及本站免费SSL证书配置

  |   0 评论   |   3,974 浏览

    互联网发展至今日,联网成为人们生活的一部分,网络安全变得越来越重要了。HTTP作为超文本传输协议,明文传输数据,客户端到服务器中间经过的任意第三方都可以拿到数据,经常出现的流量劫持,数据篡改,时不时的在你的网页里面加入广告代码,有些运营商为了利益就常做这些不耻行为。


    那有没有办法预防这些,保证数据传输的安全呢,HTTPS就应运而生了。HTTPS其实是HTTP+SSL/TLS,而SSL是英文Secure Sockets Layer的缩写,中文叫安全套接层;TLS是后面由SSL改名而来的,英文名Transport Layer Security,中文叫传输层安全,说白了TLS和SSL是一个东西,其主要作用是为网络通信提供安全以及数据完整性的。

    HTTPS是如何进行加密,解密,验证的,网上找到一个图,整个过程画的非常好,看下图


    引入HTTPS后,对保护数据安全性,防止流量劫持起到了积极的作用:
    1、数据加密,用户发出的数据和接收到的数据都是经过加密的,第三方即使拿到,但由于加密无法看到原始内容,保证了数据安全性。
    2、身份认证,保证了用户访问目标网站,在DNS劫持的情况下,由于访问目标发生改变,会提醒用户没有访问目标地址。
    3、数据完整,无法篡改,更没法顶替,再也不用担心数据内容被第三方夹带“私货”了。

    HTTPS是大势所趋,从HTTP转换为HTTPS后,数据安全得到保证的同时,会使得访问有所延迟,因为会增加一次SSL握手时间,同时购买SSL也需要成本。

    鱼和熊掌岂能兼得,为了数据安全,为了保护隐私,牺牲一点性能也是值得的,同时也庆幸有免费的SSL供我们使用,比较著名的当属Let's Encrypt了,但它的证书有效期是三个月,每三个月都要续期一下。当然可以写个脚本,,在crontab配置好后,每月自动续期一下也可以的。

    看国内腾讯云,阿里云都有免费的DV SSL证书,有效期是1年,均是和赛门铁克合作的

    阿里云的证书服务里面有免费的可以选择,目前本站用的是腾讯云的免费SSL(https://console.qcloud.com/ssl,其中申请,校验域名,下载证书的步骤就省略了,腾讯官网也讲的比较清楚,获取到的公钥和私钥证书要妥善保存,上传到服务器上。

    后续证书到期后,可以考虑用Let's Encrypt的证书尝试一下~

    下面是本站SSL证书的Nginx中的配置,请参考
      server{
            listen 80;
            server_name www.18188.org;
            location / {
              rewrite (.*) https://www.18188.org$1 permanent;
            }
        }
        server {
            listen       443;
            server_name  www.18188.org;
            ssl on;
            charset utf-8;
            access_log           /data/logs/nginx/www.18188.org.log  main;
            ssl_certificate      /data/app/nginx/ssl/18188.org/1_www.18188.org_bundle.crt; #证书公钥文件路径
            ssl_certificate_key  /data/app/nginx/ssl/18188.org/2_www.18188.org.key;   #证书私钥文件路径
            ssl_prefer_server_ciphers on;         #优先使用我们服务端的加密套件
            ssl_session_cache         shared:SSL:10m;     #ssl/tls会话缓存的类型和大小10MB
            ssl_session_timeout       30m;  #30分钟session会话保持
            ssl_protocols             SSLv3 TLSv1 TLSv1.1 TLSv1.2;
            ssl_ciphers               EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
            location / {
                 proxy_pass         http://www18188orgServer;
                 proxy_set_header   Host             $host;
                 proxy_set_header   X-Real-IP        $remote_addr;
                 proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            }
        }


    评论

    发表评论

    validate