1. 什么是数字证书?
数字证书是一个经权威授权机构数字签名、包含公开密钥拥有者信息以及公开密钥的文件,是权威机构颁发给网站的可信凭证。最简单的证书包含一个公开密钥、证书名称以及证书授权中心的数字签名。
2. 什么是SSL?
SSL协议是一种可实现网络通信加密的安全协议,可在浏览器和网站之间建立加密通道,保障数据在传输的过程中不被篡改或窃取。
3. 什么是SSL证书?
SSL证书采用SSL协议进行通信,是由权威机构颁发给网站的可信凭证。
SSL证书采用SSL协议进行通信。SSL证书部署到Web服务器后,Web服务器访问将启用HTTPS协议。您的网站将会通过 HTTPS 加密协议来传输数据,可帮助Web服务器和网站间建立可信的加密链接,从而保证网络数据传输的安全。
4. 什么是HTTPS?
HTTPS是一种基于SSL协议的网站加密传输协议。
网站安装SSL证书后,使用HTTPS加密协议访问,可激活客户端浏览器到网站服务器之间的SSL加密通道(SSL协议),从而实现高强度双向加密传输,防止传输数据被泄露或篡改。HTTPS 也就是HTTP + SSL,是HTTP的安全版。
5. 什么是CA认证中心?
CA认证中心(CA机构),即证书授权中心(Certificate Authority),或称证书授权机构。
CA认证中心作为电子商务交易中受信任的第三方,承担公钥体系中公钥合法性检验的责任。
6. SSL证书类型配置表
根据不同的验证级别,分为三类:域名型SSL(DV SSL)、企业型SSL(OV SSL)和增强型SSL(EV SSL)。
根据保护域名的数量需求,又分为:单域名版(只保护一个域名,如www.123.com或login.123.com的单个域名)、多域名版(一个证书可以包含多个域名,如同时保护www.123.com和login.123.com)和通配符版(一张证书保护同一个主域名下同一级的所有子域名,不限个数)。
域名型SSL,只验证域名所有权,只提供通信链路加密功能。
企业型SSL,验证域名所有权和申请单位的真实身份,解决在线信任问题;证书中显示申请者的企业单位名称,让访问用户安心使用;提供高强度通信链路加密功能。
增强型SSL,严格验证域名所有权和申请单位的真实身份;证书在大部分浏览器中能显示绿色地址栏(部分证书在Safari浏览器中不显示),有效解决在线信任和网站被假冒问题;证书中详细显示申请者的企业单位信息,让访问用户安心使用。
注意,通配符版只有 DVSSL 和 OVSSL 具有, EVSSL 不具有通配符版本。
7. 证书品牌(CA供应商)
Symantec:赛门铁克(Symantec)是全球第一大数字证书颁发机构、全球最值得信赖的SSL证书品牌,所有证书都采用业界领先的加密技术,为不同的网站和服务器提供安全解决方案。
CFCA: 中国金融认证中心(CFCA)通过国际WebTrust认证,遵循全球统一鉴证标准,是国际CA浏览器联盟组织成员。CFCA全球信任SSL证书,由中国权威数字证书认证机构自主研发,纯国产证书。
GeoTrust: GeoTrust 是全球第二大数字证书颁发机构, 也是身份认证和信任认证领域的领导者,采用各种先进的技术使任何大小的机构和公司都能安全、低成本地部署SSL数字证书和实现各种身份认证。
GlobalSign: GMO GlobalSign是全球最早的数字证书认证机构之一,一直致力于网络安全认证及数字证书服务,是一个备受信赖的CA和SSL数字证书提供商。
8. 证书类型
免费型DV SSL: 免费型DV SSL证书是基础级SSL产品。
通配符DV SSL:通配符DV SSL证书属于DV型SSL证书(Domain Validation SSL)。
专业版OV SSL: 专业版OV SSL证书属于OV型SSL证书(Organization Validation SSL)。
高级版EV SSL:高级版EV SSL证书属于EV型SSL证书(Extended Validation SSL)。
9. HTTPS Nginx部署
- 以centos 6.8 64位为例,下载nginx.tar.gz,解压后进入nginx目录,./configure --with-http_ssl_module,将ssl模块编译进来
- 将SSL证书下载下来,针对Nginx服务器的是xxx.pem和xxx.key文件,上传到centos服务器
- nginx编译完成并安装到默认路径(/usr/local/nginx)后,来到/usr/local/nginx/conf文件夹下,创建certs文件夹,将xxx.pem和xxx.key拷贝到certs文件夹下
- 在conf文件夹下再创建vhost文件夹,并在nginx.conf文件中添加include /usr/local/nginx/conf/vhost/*.conf;
- 在vhost文件夹下,创建xxx.com.conf文件,其中xxx代表域名,容易辨识和修改,每个域名对应一个.conf文件
- 在对应的.conf文件中,添加如下代码:
server {
listen 80 default_server;
server_name www.xxx.com;
return 302 https://$server_name$request_uri;
}
上面这段代码用来从http跳转到https。
server {
listen 443;
autoindex on;
server_name www.xxx.com;
access_log /usr/local/nginx/logs/access.log combined;
index index.html index.htm index.jsp index.php;
#ssl
ssl on;
ssl_certificate_key certs/www.xxx.com.key;
ssl_certificate certs/www.xxx.pem;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-HA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
}
上面这段代码用来打开ssl,重启nginx之后,可以使用https访问网站了,并且通过http访问后,直接跳转到https。