HTTPS 证书
HTTPS证书也称SSL服务器证书或者SSL证书。,是数字证书中的一种,由受信任的数字证书颁发机构CA在验证服务器身份后颁发,具有服务器身份验证,数据传输加密以及保护数据的完整等功能,配置在服务器上。所以由合法CA机构颁发的HTTPS证书遵循SSL协议,通过在客户端浏览器和Web服务器之间建立一条SSL安全通道,对传送的数据进行加密和隐藏;确保数据在传送中不被篡改和窃取,保障数据的完整性和安全性,SSL安全协议是由网景(Netscape Communication)公司设计开发主要用来提供对用户和服务器的认证,目前已成为该领域中全球化的标准。HTTPS证书广泛应用于网上银行,金融系统,购物网站以及政府组织机构等领域,用来保障网站客户端与服务器端的数据传输安全和网站真实身份认证。
向CA机构购买HTTPS证书
由于HTTPS证书是由合法的CA机构颁发,所以购买HTTPS证书必须向CA机构申请购买。
CA机构:证书授证中心,作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。CA中心(GDCA)为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。CA机构的数字签名使得攻击者不能伪造和篡改证书。它负责产生、分配并管理所有参与网上交易的个体所需的数字证书,因此是安全电子交易的核心环节。
GDCA是国内仅有的几个CA机构之一,通过国际的WebTrust的国际认证,拥有国产的自主品牌GDCA,符合中国国情的证书。同时,GDCA是国际证书品牌Symantec、GlobalSign的金牌代理,是国内唯一一家持有国际证书和国产证书的服务商。消费者可根据自身特点选择不同的证书。
SSL证书没有所谓的“品质”和“等级”之分,只有三种不同的类型。
SSL证书需要向国际公认的证书证书认证机构(简称CA,Certificate Authority)申请。
CA机构颁发的证书有3种类型:
域名型SSL证书(DV SSL):信任等级普通,只需验证网站的真实性便可颁发证书保护网站;
企业型SSL证书(OV SSL):信任等级强,须要验证企业的身份,审核严格,安全性更高;
增强型SSL证书(EV SSL):信任等级最高,一般用于银行证券等金融机构,审核严格,安全性最高,同时可以激活绿色网址栏。
购买HTTPS证书的详细步骤:
1、首先确定Web Server 的类型
一般来说,除了 Java Tomcat Web Server 之外的其他 Web Server(比如 Apache Httpd)都是使用 OpenSSL 实现其加密层的,所以在购买证书时先选定你的 Web Server 加密程序为 OpenSSL。(注:Tomcat 结合 APR 使用的话也是用 OpenSSL 。)
2、生成私钥和签名请求文件
使用如下命令可以产生一个私钥以及一个签名请求文件
$ openssl req -nodes -newkey rsa:2048 -keyout my.key -out my-request.csr
这条命令的 rsa:2048 用于指定加密算法的名称以及密钥的长度,最终生成的 my.key 为私钥(要保管好)和一个签名请求文件。
运行这个命令时会询问关你的网站的信息,如果是个人网站,那么大部分资料都是可以随便填的,只要 “Common Name” 这一项准确填写你的域名即可,比如 trustauth.cn,trustauth.cn,注意不用加 www 前缀,namecheap 代理销售的 SSL 证书会自动额外签名你的 www 二级域名,即付一份价钱,可以同时认证 trustauth.cn 和 www.trustauth.cn。
3、检查一下你域名登记的 email 地址
因为证书服务商会验证你的域名,而验证方法则是发送一封 email 到你域名注册时所填写的联系 email 地址。
4、把签名请求文件发送给证书服务商
根据购买流程当中的指引,把第 2 步产生的 my-request.csr 发送给证书服务商。大概等十几分钟(也有时要几个小时)服务商会发送一封 email 给你,一般来说里面包含一个验证码,把这个验证码输入购买流程的页面当中就完成域名验证了。
5、获取签名证书
上一步完成之后,大概再等几分钟,你就会收到一封邮件(或者出现在购买流程当中),里面包含有你的证书和证书链。具体来说可能会有这 3 个证书文件:
yourDomainName.crt
PositiveSSLCA2.crt
AddTrustExternalCARoot.crt
一般来说我们要把后两者合并为一个文件,用记事本打开然后复制粘贴形成一个新文件即可,需要注意 *Root.crt 这个文件的内容要放在最后,对于 linux 系统用户,用这行搞定:
$ cat PositiveSSLCA2.crt AddTrustExternalCARoot.crt > yourDomainName.ca-bundle.crt
6、使用证书
这里以 Apache Httpd 为例,一般的设置如下:
SSLEngine on
SSLCertificateKeyFile /etc/ssl/ssl.key/my.key
SSLCertificateFile /etc/ssl/ssl.crt/yourDomainName.crt
SSLCertificateChainFile /etc/ssl/ssl.crt/yourDomainName.ca-bundle
如果你的 apache 配置了多个虚拟主机,则配置如下:
# make sure add these lines in somewhere else
#NameVirtualHost *:80
#NameVirtualHost *:443
<VirtualHost *:80>
ServerName trustauth.cn
DocumentRoot /var/www/your-domain
ServerAlias trustauth.cn
<VirtualHost>
<VirtualHost *:443>
SSLEngine on
SSLCertificateKeyFile /etc/ssl/ssl.key/my.key
SSLCertificateFile /etc/ssl/ssl.crt/yourDomainName.crt
SSLCertificateChainFile /etc/ssl/ssl.crt/yourDomainName.ca-bundle
ServerName trustauth.cn
DocumentRoot /var/www/your-domain
ServerName trustauth.cn
<VirtualHost>
对于使用了 APR 的 Tomcat 服务器,配置如下:
<Connector port=”443″ protocol=”HTTP/1.1″
address=”198.74.59.36″
SSLEnabled=”true”
scheme=”https” secure=”true”
enableLookups=”false”
SSLCertificateFile=”/etc/ssl/my/yourDomainName.crt”
SSLCertificateChainFile=”/etc/ssl/my/yourDomainName.ca-bundle.crt”
SSLCertificateKeyFile=”/etc/ssl/my/my.key”/>
证书设置完毕。
7、补:SSL 证书的格式转换
如果你已经根据上面的流程购买了一个 SSL 证书,而碰巧使用的时候要求是 Java Keystore 格式,那么需要将 OpenSSL 的证书转换一下:
首先将密钥和证书转为 pkcs12 格式:
$ openssl pkcs12 -export -in yourDomainName.crt -inkey my.key > my.p12
然后将 pkcs12 格式转换为 Java keystore 格式:
$ keytool -importkeystore -srckeystore my.p12 -destkeystore my.jks -srcstoretype pkcs12
相关搜索
上一篇:斯诺登最新泄露文档:纽约AT&T大厦可能是NSA进行数据监控的秘密基地
下一篇:关于SSL VPN设备的定义详解