1 SSL证书介绍
1.1 SSL证书说明
SSL 证书(SSL Certificates)遵守SSL协议,由受信任的数字证书颁发机构CA颁发,主要用来提供对用户和服务器的认证,在基于HTTP访问的Web网站基础上加入SSL(Secure
socket layer),由HTTPS通过传输加密和身份认证保证了传输过程的安全性。
2014年Google调整了搜索引擎算法,比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中的排名更靠前。并且从 2017 年开始,Chrome 浏览器已把采用 HTTP 协议的网站标记为不安全网站,苹果 App Store 中的所有应用也都必须使用 HTTPS 加密连接;微信小程序也要求必须使用 HTTPS 协议;新一代的 HTTP/2 协议的支持需以 HTTPS 为基础。现已成为网络领域中全球化的标准。
1.2 SSL证书类型
SSL证书需要向国际公认的证书证书认证机构(简称CA,Certificate Authority)申请。SSL证书分为域名型SSL证书(DV SSL)、企业型SSL证书(OV SSL)、增强型SSL证书(EV SSL)三种类型。
数字证书 | 信任等级 | 认证强度 | 适用网站类型 |
DV SSL | 普通 | 验证网站的真实性便可颁发证书 | 个企、APP |
OV SSL | 强 | 须审验证企业身份 | 政府组织、企业 |
EV SSL | 最高 | 审核严格,激活绿色地址栏 | 金融机构 |
1.3 启用SSL证书优势
1.3.1 防流量劫持
启用SSL证书,通过HTTPS协议访问网站,用户访问网站的数据实现加密访问,实现交互的数据的安全,防止流量劫持、防止数据篡改、防止监听。
1.3.2 提升搜索排名
采用 HTTPS加密的网站,通过google、百度等搜索引擎显示的结果排名更高,可提升搜索排名和网站的可信度。
1.3.3 杜绝钓鱼网站
使用SSL证书可以强化网站的可信程度,使用户安全的访问网站,增强用户信任。
1.4 CA厂商
目前常用的CA厂商有Symante、GeoTrust、TrustAsia、Let’s Encrypt、GMO GlobalSign、CFCA。
1.4.1 Symantec
Symantec 是全球最大的信息安全服务提供商, 其颁发的证书能被所有浏览器支持与信任,可确保用户访问时浏览器给予正确的网页安全提示,为全球一百多万台网络服务器提供安全防护。该品牌证书由工信部许可设立的电子认证服务机构“天威诚信”提供鉴证服务。
1.4.2 GeoTrus
GeoTrust 是全球第二大数字证书提供商,也是身份认证和信任认证领域的领导者,该公司各种先进的技术使得任何大小的机构和公司都能安全、低成本地部署 SSL 数字证书和实现各种身份认证。目前已被Symantec收购。
1.4.3 GMO GlobalSign
GMO GlobalSign是全球最早的数字证书认证机构之一,是一个备受信赖的 CA 中心和 SSL 数字证书提供商,在全球总计颁发超过 2000 万张数字证书;其专业实力获得中国市场众多服务器、域名注册商、系统服务供应商的青睐,成为其数字证书服务的合作伙伴。
1.4.4 TrustAsia®
TrustAsia®(亚洲诚信)是亚数信息科技(上海)有限公司应用于信息安全领域的品牌, 专业为企业提供包含数字证书在内的所有网络安全服务,是Symantec™(赛门铁克)的白金合作伙伴
1.4.5 Let’s Encrypt
Let’s Encrypt是国外一个公共的免费SSL项目,由 Linux 基金会托管,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,目的就是向网站自动签发和管理免费证书,以便加速互联网由HTTP过渡到HTTPS。
2 SSL安装配置
2.1 申请免费SSL证书
SSL证书可到各云厂商免费申请。
2.2 SSL证书文件说明
SSL证书服务支持Apache、Nginx、Tomcat、IIS等,申请成功后方可将下载证书并安装到对应的服务器中。
下载的证书下载主要有以下文件:
- .key文件是证书私钥文件,如果申请证书时没有选择系统创建CSR,则没有该文件。
- .crt文件是证书文件,一般包含两段内容。如果是Apache服务器,会将证书文件拆分成 _public.crt(证书文件)和_chain.crt(证书链或中间证书文件)。
- .pem文件是证书文件。
说明:.crt扩展名的证书文件采用Base64-encoded的PEM格式文本文件,可根据需要,修改成.pem等扩展名。
.pfx文件,一般适合Tomcat/IIS服务器。每次下载或更新都会产生新密码,该密码仅匹配本次下载的证书。
CSR 文件是申请证书时由您上传或系统在线生成的,提供给 CA 机构。安装时可忽略该文件。
2.3 Apache部署SSL证书
2.3.1 环境准备
- 下载Apache服务器证书
- 安装Open SSL
2.3.2 安装部署
- 创建ssl目录
mkdir /etc/httpd/ssl
- 复制证书文件到SSL目录中
cp *bundle.crt /etc/httpd/ssl cp *.crt /etc/httpd/ssl cp *.key /etc/httpd/ssl
- 安装 mod_ssl.so 模块
yum install mod_ssl
- http.conf修改加载配置 SSL 的配置目录
vi /etc/httpd/conf/httpd.conf Include conf.modules.d/*.conf #取掉注释符号(#)
- 配置SSL模块
yum install mod_ssl vi /etc/httpd/conf.modules.d/00-ssl.conf LoadModule ssl_module modules/mod_ssl.so 去掉注释符号(#) 编辑 /etc/httpd/conf.d/ssl.conf 配置文件。修改如下内容: <VirtualHost 0.0.0.0:443> DocumentRoot "/var/www/html" #填写证书名称 ServerName www.weijing.co #启用 SSL 功能 SSLEngine on #证书文件的路径 SSLCertificateFile /etc/httpd/ssl/2_www.weijing.co.crt #私钥文件的路径 SSLCertificateKeyFile /etc/httpd/ssl/3_www.weijing.co.key #证书链文件的路径 SSLCertificateChainFile /etc/httpd/ssl/1_root_bundle.crt </VirtualHost>
- 自动跳转HTTPS
通过以下配置,将HTTP请求自动重定向到HTTPS,增加以下内容:
Vi httpd.conf LoadModule rewrite_module modules/mod_rewrite.so <Directory "/var/www/html"> # 新增 RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] </Directory>
如果不存在可添加文件
echo ‘LoadModule rewrite_module modules/mod_rewrite.so’ >> /etc/httpd/conf.modules.d/00-rewrite.conf
- 重启Apache服务
通过浏览器https://www.weijing.co进行访问。
2.4 Nginx部署SSL证书
2.4.1 环境准备
- 下载SSL证书并上传到Nginx服务器中
- Nginx SSL的文件
证书文件:.pem 秘钥文件:.key
2.4.2 安装部署
- 创建cert目录
mkdir /usr/local/nginx/conf/cert cp weijing.co.pem /usr/local/nginx/conf/cert cp weijing.co.key /usr/local/nginx/conf/cert
- 修改nginx.conf
server { #SSL 访问端口号为 443 listen 443 ssl; #填写绑定证书的域名 server_name www.weijing.co; #证书文件名称 ssl_certificate cert/www.weijing.co_bundle.crt; #私钥文件名称 ssl_certificate_key cert/www.weijing.co.key; ssl_session_timeout 5m; #请按照以下协议配置 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。 root /var/www/www.weijing.co index index.html index.htm; } }
- 自动跳转HTTPS
配置nginx.conf,将HTTP请求自动重定向到HTTPS,增加以下内容:
server { listen 443 ssl; #填写绑定证书的域名 server_name www.weijing.co; #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。 root /var/www/www.weijing.co; index index.html index.htm; #证书文件名称 ssl_certificate cert/www.weijing.co_bundle.crt; #私钥文件名称 ssl_certificate_key cert/www.weijing.co.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; location / { index index.html index.htm; } } server { listen 80; #填写绑定证书的域名 server_name www.domain.com; #把http的域名请求转成https return 301 https://$host$request_uri; }
- 重启Nginx服务
nginx -s stop nginx -s start
- 通过浏览器访问https://www.weijing.co。
2.5 Tomcat部署SSL证书
2.5.1 环境准备
- 下载SSL证书并上传到Tomcat服务器中
- Tomcat SSL的文件
www.weijing.co.jks
密钥库cart_password.txt
密码文件
说明 如果是PFX格式证书,可通过以下命令将PFX格式证书转化成JKS格式。
keytool -importkeystore -srckeystore weijing.co.pfx -destkeystore weijing.co.jks -srcstoretype PKCS12 -deststoretype JKS
2.5.2 安装部署
- 配置SSL证书
vi tomcat/conf/server.xml <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" #证书保存的路径 keystoreFile="/usr/*/conf/www.weijing.co.jks" #密钥库密码 keystorePass="******" clientAuth="false"/>
配置文件的主要参数说明如下:
keystoreFile:密钥库文件的存放位置.。 keystorePass:密钥库密码。 clientAuth: true表示Tomcat对 SSL 客户进行身份验证。
- 自动跳转HTTPS
通过以下配置,将HTTP请求自动重定向到HTTPS,增加以下内容:
编辑 tomcat/conf/web.xml 文件,在</welcome-file-list> 下面换行,并添加以下内容:
<login-config> <!-- Authorization setting for SSL --> <auth-method>CLIENT-CERT</auth-method> <realm-name>Client Cert Users-only Area</realm-name> </login-config> <security-constraint> <!-- Authorization setting for SSL --> <web-resource-collection> <web-resource-name>SSL</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
- 修改server.xml配置文件,将redirectPort端口8443修改为443端口
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />
- 重启服务
./shutdown.sh ./startup.sh
- 通过浏览器访问https://www.weijing.co。
2.6 IIS部署SSL证书
2.6.1 环境准备
- 下载SSL证书并上传到Nginx服务器中
- Nginx SSL的文件
证书文件:.pfx
秘钥文件:.txt
2.6.2 安装部署
- 打开 IIS 服务管理器,选择计算机名称,双击左侧栏中的“服务器证书”。
- 在“服务器证书”窗口的右侧 “操作” 栏中,选择“导入”。
- 在“导入证书” 窗口选择证书文件存放路径,输入密码后“确定”。
- 选中网站下的站点名称,选择右侧 “编辑网站”-“绑定”。
- 在“网站绑定”选择“添加”。
- “添加网站绑定”中,类型选择:https,端口:443,主机名为当前申请证书的域名,并选择指定对应的 SSL 证书,“确定”保存。
- 自动跳转HTTPS
- 选择站点名称,选择“URL重写”à“操作”à“添加规则”
- “添加规则”à “空白规则”à “确定”
- “编辑入站规则”修改如下内容:
名称:强制 HTTPS。
匹配URL:在 “模式” 中输入:(.*)。
条件:“添加” à 条件输入:{HTTPS} à “类型”:“与模式匹配” à 模式:手动输入^OFF$。
操作:操作类型:重定向 à 重定向 URL:https://{HTTP_HOST}/{R:1} à重定向类型:选择参阅其他(303)。
- “管理网站”–> 重新启动
- 通过浏览器访问验证https://www.weijing.co。
2.7 总结
企业网站启用通过CA颁发的SSL证书,帮助企业客户通过HTTPS浏览网站 ,保护企业网站防止流量劫持、提升企业网站的搜索排名,增加企业曝光率。杜绝钓鱼网站,增加企业可信度,为客户赢得客户信任。