微信小程序已经全面要求使用HTTPS服务了,还有苹果商店也是,所以,实现网站HTTPS已经很有必要。要实现HTTPS就需要一个SSL证书,证书大部分都很贵,不过也有一些免费的证书服务供个人开发者使用。

 

微信小程序已经全面要求使用HTTPS服务了,还有苹果商店也是,所以,实现网站HTTPS已经很有必要。要实现HTTPS就需要一个SSL证书,证书大部分都很贵,不过也有一些免费的证书服务供个人开发者使用。

 

#SSL证书#

HTTPS连接基于SSL证书,SSL证书一般可以分成以下三大类:

  • DV SSL(域名型);
  • OV SSL(企业型);
  • EV SSL(增强型);

一般每种类型下面又分成不同版本(价格不同),比如企业型证书一般又分成:

  • 普通版企业型证书;
  • 专业版企业型证书;
  • 普通版企业型通配符证书;
  • 专业版企业型通配符证书;

一、域名型SSL证书

即证书颁布机构只对域名的所有者进行在线检查,通常是验证域名下某个指定文件的内容,或者验证与域名相关的某条TXT记录。

浏览器普通加锁标记。

二、企业型SSL证书

需要购买者提交组织机构资料和单位授权信等在官方注册的凭证,证书颁发机构在签发SSL证书前不仅仅要检验域名所有权,还必须对这些资料的真实合法性进行多方查验,只有通过验证的才能颁发SSL证书。

浏览器普通加锁标记。

三、增强型SSL证书

验证流程更加具体详细,验证步骤更多,这样一来证书所绑定的网站就更加的可靠、可信。它跟普通SSL证书的区别也是明显的,安全浏览器的地址栏变绿,如果是不受信的SSL证书则拒绝显示,如果是钓鱼网站,地址栏则会变成红色,以警示用户。

#常见CA厂商#

目前常见的证书颁发机构主要有:

 
Symantec
GeoTust
TrustAsia
Let\’s Encrypt
品牌定位 全球第一 全球第二 亚太区专业品牌 全球新兴品牌
价格 高级品牌,价位高 价格稍低 价格稍低,含免费 免费
证书类型 企业型/增强型,单域名、多域名、泛域名证书 企业型/增强型,单域名、多域名、泛域名证书 域名型,单域名、多域名、泛域名证书 域名型,单域名证书
客户群体 银行、金融、保险、医疗、电子商务等 传统行业、企业、教育、公共部门等 公共部门、非盈利项目、开源项目等 个人网站/博客,非盈利项目、开源项目等

而当前国内提供SSL证书服务的云厂商主要有(加粗为免费域名型证书):

 
支持品牌
支持证书种类
免费种类
阿里 Symantec、GeoTrust、CFCA(国内CA) 21 1
腾讯 Symantec、GeoTrust、TrustAsia 17 1
百度 TrustAsia 1 1
又拍 Symantec、GeoTrust、TrustAsiaLet\’s Encrypt 22 2
七牛 Symantec、GeoTrust、TrustAsia 15 1
金山 Symantec、GeoTrust 14 1

#申请免费证书#

下面以申请阿里云免费证书为例,不得不说,阿里云的免费证书申请简直是跟客户在玩捉迷藏。

1)首先,进入默认证书购买页面,产品-安全-CA证书。

2)点击选择“Symantec”。

3)回到第一行,选择增强型OV SSL。

这个时候才看到“免费型DV SSL”的标签,点击进去申请即可。

顺带一提,由于免费DV SSL证书只能对应一个域名一个,所以可以一次性申请多几个。(笔者就一次性申请了10个)

#安装证书#

申请证书通过后,需要把证书安装到服务器端。申请的过程中需要域名映射验证,根据阿里云提示做即可,这里不再赘述。

证书申请通过后,下载证书,以Nginx为例,有两个文件,分别是.pem证书文件和.key证书私钥文件。

1)在nginx下创建cert目录,并且把证书文件和私钥文件上传到该目录下。

# cd /usr/local/nginx
# mkdir cert
# chown www:www cert
# ls -l cert/
total 8
-rw------- 1 www www 1678 Mar 31 16:08 abc.com.key
-rw------- 1 www www 3678 Mar 31 16:08 abc.com.pem

2)配置nginx.conf文件。

# vim /usr/local/nginx/conf/nginx.conf

server {
    listen        80;
    server_name   abc.com www.abc.com;
    rewrite ^/(.*)$ https://abc.com/$1 permanent;
}
server {
    listen        443;
    server_name   abc.com www.abc.com;
    index         index.html;
    root          /data/www/www.abc.com;

    ssl                       on;
    ssl_certificate           ../cert/abc.pem;
    ssl_certificate_key       ../cert/abc.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;
}

3)最后重启nginx即可。

 

版权声明:本文为brishenzhou原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/brishenzhou/p/8807466.html