在CentOS7中开启httpd的mod_ssl 模块及配置

  在配置前我们先来了解SSL相关的技术,主要涉及:加密算法(cryptographic algorithms)、消息摘要函数(message digest functions)、数字签名(digital signatures)。
  加密算法有两种类别: 常规和公共密钥,常规加密需要通讯双方共享一个KEY,因此key的管理是一个问题;公共密钥加密也称为非对称加密技术,解决了密钥交换问题,通过定义一种算法,生成两个密钥(一私一共),一个密钥用来加密信息,别一个密钥用来解密信息,从而保证通讯的秘密性。

   消息摘要 利用函数生成消息的简明摘要,再将它发送给接收方,接收方使用消息函数重新生成一个简明摘要,对比两个摘要,如果一致则可确认消息的真实性,消息摘要内容的安全性由数字签名来确保。

  数据签名 使用私钥对消息、摘要和其他相关信息进行签名,任何接收方可以使用共钥解密签名,因为私钥只有发送人自己拥有,确保消息的完整性,数据签名还包含一个独特的序列号,以防止非法重用。

  证书(Certificates)由受信任的机构颁发,实现对方身份的验证。
  SSL的握手过程
在CentOS7中开启httpd的mod_ssl 模块及配置_第1张图片

  1. 系统环境

    操作系统:CentOS Linux release 7.2.1511 (Core)
    WEB服务: Apache/2.4.6 (CentOS)

  2. 生成证书:

    • 创建私钥
      这个命令会生成一个2048位的密钥。

      [centos@web-server]$ openssl genrsa -out server.key 2048
    • 用私钥server.key 文件生成证书签署请求CSR

      [centos@web-server]$ openssl req -new -key server.key -out server.csr

    用前面生成的密钥mytkey.pem文件生成一个证书请求(server.csr),即一个证书请求文件,你可以拿着这个文件去数字证书颁发机构(即CA)申请一个数字证书。

    • 生成证书CRT文件
      这里我们使用自签证书,使用以下命令来生成证书:
      [centos@web-server]$ openssl x509 -days 3650 -req in server.csr -signkey server.key -out server.crt 

    这个命令将用上面生成的密钥server.key和请求文件server.csr,生成一个数字证书server.crt,将这两个文件放在一个安全的地方,比如:/etc/pki/tls 目录下。

    [centos@web-server]$  sudo mv server.* /etc/pki/tls
  3. 修改/etc/httpd/conf.d/ssl.conf配置文件 ,将文件中这二行信息修改为:

    SSLCertificateFile /etc/pki/tls/server.crt
    SSLCertificateKeyFile /etc/pki/tls/server.key

    重启httpd服务器

    [centos@web-server]$ sudo systemctl restart httpd

    OK,程序应该开启443端口提供服务了。

你可能感兴趣的:(httpd)