网站SSL证书

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等,申请成功后方可将下载证书并安装到对应的服务器中。

下载的证书下载主要有以下文件:

  1. .key文件是证书私钥文件,如果申请证书时没有选择系统创建CSR,则没有该文件。
  2. .crt文件是证书文件,一般包含两段内容。如果是Apache服务器,会将证书文件拆分成 _public.crt(证书文件)和_chain.crt(证书链或中间证书文件)。
  3. .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 安装部署

  1. 打开 IIS 服务管理器,选择计算机名称,双击左侧栏中的“服务器证书”。
  2. 在“服务器证书”窗口的右侧 “操作” 栏中,选择“导入”。
  3.  在“导入证书” 窗口选择证书文件存放路径,输入密码后“确定”。
  4. 选中网站下的站点名称,选择右侧 “编辑网站”-“绑定”。
  5. 在“网站绑定”选择“添加”。
  6. “添加网站绑定”中,类型选择:https,端口:443,主机名为当前申请证书的域名,并选择指定对应的 SSL 证书,“确定”保存。
  • 自动跳转HTTPS
  • 选择站点名称,选择“URL重写”à“操作”à“添加规则”
  • “添加规则”à “空白规则”à “确定”
  • “编辑入站规则”修改如下内容:

名称:强制 HTTPS。

匹配URL:在 “模式” 中输入:(.*)。

条件:“添加” à 条件输入:{HTTPS} à “类型”:“与模式匹配” à 模式:手动输入^OFF$。

操作:操作类型:重定向 à 重定向 URL:https://{HTTP_HOST}/{R:1} à重定向类型:选择参阅其他(303)。

  • “管理网站”–> 重新启动

2.7 总结

企业网站启用通过CA颁发的SSL证书,帮助企业客户通过HTTPS浏览网站 ,保护企业网站防止流量劫持、提升企业网站的搜索排名,增加企业曝光率。杜绝钓鱼网站,增加企业可信度,为客户赢得客户信任。

发表评论