ssl证书的选型,你知道多少?
介绍
目前互联网常用的HTTP协议是非常不安全的明文传输协议。而SSL协议及其继任者TLS协议,是一种实现网络通信加密的安全协议,可在客户端(浏览器)和服务器端(网站)之间建立一条加密通道,保证数据在传输过程中不被窃取或篡改。
SSL证书,也称为服务器SSL证书,是遵守SSL协议的一种数字证书,由全球信任的证书颁发机构(CA)验证服务器身份后颁发。将SSL证书安装在网站服务器上,可实现网站身份验证和数据加密传输双重功能。
PS: HTTPS也就是HTTP+SSL,基于SSL协议的网站加密传输协议,是HTTP的安全版。
一、SSL证书的加密算法
1. 3种加密算法证书
加密算法 | 描述 |
---|---|
RSA | 目前普遍使用,在各个老旧平台浏览器里面兼容度很好 |
ECC | 新兴的算法趋势,一般只需要 256 位加密长度即可达到相当的安全性,比 RSA 加密效率更高,但占用资源却比 RSA 更少。但缺点是一些比较老旧的系统环境中无法支撑这种算法,所以它的兼容性相比 RSA 要差一些。 |
SM2 | SM2 国密算法的SSL证书也是刚刚兴起,目前仅仅少数几款浏览器支持,且对服务器环境要求较高,目前无法做到普遍部署。 |
SSL证书在提交申请的时候,就会需要选择加密算法,目前使用较多的依然是 RSA,或者 RSA 和 ECC 配合使用。在客户端实现自适应切换,即当用户环境支持 ECC 的时候,网站自动适配 ECC 加密算法的证书,否则就适配 RSA 的SSL证书。在某些情况下会选择 SM2 算法。目前Nginx 1.11.0 开始提供了对 RSA/ECC 双证书的支持
客户端兼容: RSA > ECC > SM2
ECC算法SSL证书无论是安全性及加密安全,响应速度都比RSA算法更高,所以ECC是未来主流算法
2. 3种加密算法证书的展示效果
RSA - SSL证书
使用 google浏览器 访问华为云。如下
https://auth.huaweicloud.com/
ECC - SSL证书
使用 google浏览器 访问阿里云。如下
https://www.aliyun.com/
SM2 - SSL证书
使用 零信浏览器 才可以访问到国密证书。如下
https://ebssec.boc.cn/
https://ebssec.boc.cn 是一个仅部署了国密SSL证书的网站,如果不是使用支持国密加密的浏览器访问的话,浏览器会提示“意外终止了连接
二、SSL证书类型DV、OV、EV
1.按照证书的类型-作用 区分
证书类型 | 全称 | 作用 |
---|---|---|
DV SSl | 域名型SSL证书 | 只验证域名所有权的简易型SSL证书,此类证书仅能起到网站机密信息加密的作用,无法向用户证明网站的真实身份,除了比其他两种类型的证书更快的周转时间外,最适合个人小型网站 |
OV SSL | 企业型SSL证书 | 需要验证网站所有单位的真实身份的标准型SSL证书,需要购买者提交组织机构资料和单位授权信等在官方注册的凭证,能起到网站机密信息加密的作用,且能向用户证明网站的真实身份,适合企事业单位 |
EV SSL | 增强型SSL证书 | 用于网站的身份验证和信息在网上的传输加密,但验证流程更加具体详细,步骤更多,证书所绑定的网站也更加的可靠可信 |
2.按照证书的类型-价格和展示信息 区分
证书类型 | 价格 | 证书展示的信息 |
---|---|---|
DV SSl | 免费/通配符证书收费, 0-1500元,便宜 | (一般) CA机构审核个人网站真实性、不验证企业真实性 |
OV SSL | 收费, 2000元-11000元,中等 | (高)CA机构审核组织及企业真实性 |
EV SSL | 收费,10000元+,昂贵 | (最高)严格认证 |
3.按照证书的类型-域名类型 区分
证书类型 | 域名类型 |
---|---|
DV SSl | 单域名、多域名、泛域名 |
OV SSL | 单域名、多域名、泛域名 |
EV SSL | 单域名、多域名 |
三、 SSL证书品牌
1.高端SSL证书品牌
品牌 | 场景 | 描述 |
---|---|---|
Digicert Secure Site | 高端SSL证书,银行证券等金融行业最热门首选SSL证书 | 原Symantec证书,被Digicert收购,专业版即Digicert Secure Site Pro OV通配符证书兼具Secure Site OV通配符SSL证书的所有功能,另提供优先级验证、优先级支持、CT日志监控(每周7天24小时的全天候监控)、欺诈检测、恶意软件扫描、支持后量子密码学加密等服务 可分为标准版和专业版 |
Globalsign | 高端SSL证书,国内各大电商企业所使用,如阿里、百度、天猫 | 行业内最受信的证书颁发机构,它的根证书可以兼容一些老版本浏览器,支持SHA 256签名,支持RSA和ECC加密算法 |
2.便宜SSL证书品牌
品牌 | 场景 | 描述 |
---|---|---|
Geotrust | 便宜SSL证书, 中小型企业网站 | 一款全球最大的数字证书颁发机构之一,是Digicert旗下证书品牌。证书安全性好,兼容性高,性价比高。与Digicert旗下的赛门铁克相比,Geotrust证书便宜得多,性能也相差不大 |
锐安信sslTrus | 便宜SSL证书, 国内企事业单位 | 支持国际RSA和ECC算法,兼容性好,锐安信通配符证书支持国内OCSP验签,大幅提高HTTPS访问速度,性价比非常高 |
Sectigo | 便宜SSL证书,中小型企业的首选 | 全球著名CA,也是全球SSL证书占有率最高的证书颁发机构。支持RSA和ECC算法,安全可信、价格便宜 |
PositiveSSL | 便宜SSL证书,轻型电子商务 | 是Sectigo旗下品牌,价格亲民,入门性价比高,签发速度快,几分钟可签发,兼容99.3%的浏览器 |
RapidSSL | 便宜SSL证书,适合入门级网站 | 是Geotrust旗下产品,仅有DV型SSL证书,其主要优点是价格低廉,几分钟快速签发 |
3.免费SSL证书品牌
品牌 | 场景 | 描述 |
---|---|---|
TrustAsia | 便宜SSL证书,免费的ssl证书, 中小型企业网站 | 支持主流的加密方式(ECC、RSA),支持中国区 OCSP,并为客户提供7*24小时全天候一对一技术支持服务 |
Let's Encrypt | 便宜SSL证书,免费的ssl证书, 中小型企业网站 |
四、主流Web服务软件的证书格式
一般来说,主流的Web服务软件,通常都基于OpenSSL和Java两种基础密码库。
Web服务软件 | 密码库 | 描述 |
---|---|---|
Tomcat Weblogic JBoss |
使用Java提供的密码库,通过Java Development Kit (JDK)工具包中的Keytool工具, | 生成Java Keystore(JKS)格式的证书文件 |
Apache Nginx |
使用OpenSSL工具提供的密码库 | 生成PEM、KEY、CRT等格式的证书文件 |
Websphere IBM Http Server(IHS) |
使用IBM产品自带的iKeyman工具 | 生成KDB格式的证书文件 |
Internet Information Services(IIS) | 使用Windows自带的证书库 | 生成PFX格式的证书文件 |
证书格式
如果存在——BEGIN CERTIFICATE——,则说明这是一个证书文件
如果存在—–BEGIN RSA PRIVATE KEY—–,则说明这是一个私钥文件
格式 | 描述 |
---|---|
.DER或.CER文件 | 这样的证书文件是二进制格式,只含有证书信息,不包含私钥 |
*.CRT文件 | 这样的证书文件可以是二进制格式,也可以是文本格式,一般均为文本格式,功能与 .DER及.CER证书文件相同 |
.PEM文件 | 这样的证书文件一般是文本格式,可以存放证书或私钥,或者两者都包含。 .PEM 文件如果只包含私钥,一般用.KEY文件代替 |
.PFX或.P12文件 | 这样的证书文件是二进制格式,同时包含证书和私钥,且一般有密码保护 |
证书格式转换
将PEM/KEY/CRT格式证书转换为PFX格式
可以使用 OpenSSL工具,将KEY格式密钥文件和CRT格式公钥文件转换成PFX格式证书文件
例如,将您的KEY格式密钥文件(server.key)和CRT格式公钥文件(server.crt)拷贝至OpenSSL工具安装目录,
使用OpenSSL工具执行以下命令将证书转换成 server.pfx证书文件:
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt
将PFX转换为PEM/KEY/CRT
可以使用 OpenSSL工具,将PFX格式证书文件转化为KEY格式密钥文件和CRT格式公钥文件。
例如,将您的PFX格式证书文件拷贝至OpenSSL安装目录,使用OpenSSL工具执行以下命令将证书转换成server.pem证书文件
KEY格式密钥文件(server.key)和CRT格式公钥文件(server.crt.
openssl pkcs12 -in server.pfx -nodes -out server.pem
openssl rsa -in server.pem -out server.key
openssl x509 -in server.pem -out server.crt
将PFX格式证书转换为JKS格式
可以使用JDK中自带的Keytool工具,将PFX格式证书文件转换成JKS格式。
例如,您可以执行以下命令将 server.pfx证书文件转换成 server.jks证书文件:
keytool -importkeystore -srckeystore D:server.pfx -destkeystore D:server.jks -srcstoretype PKCS12 -deststoretype JKS
将JKS格式证书转换成PFX格式
可以使用JDK中自带的Keytool工具,将JKS格式证书文件转换成PFX格式。
例如,您可以执行以下命令将 server.jks证书文件转换成 server.pfx证书文件:
keytool -importkeystore -srckeystore D:server.jks -destkeystore D:server.pfx -srcstoretype JKS -deststoretype PKCS12