Apache Httpd 2.2 配置CA证书实现Https加密通讯

关于什么是CA证书,以及如何使用Open-SSL申请和搭建CA证书,我们在之前的文章中已经有过介绍,这里不再赘述。若有疑问,可参考之前的文章。

Apache Httpd 2.2 实现https加密通讯

实际生产中CA证书一般是向一些专业认证的国际机构来进行申请的。我们会模拟使用OpenSSL生成的证书,来实现Apache的安全加密通讯,这与实际生产中是类似的。

实验环境准备

准备两台虚拟主机。他们的作用和角色分别如下图所示。

实验环境准备

接下来,我们分两个部分进行,在主机B上搭建CA证书环境,然后在主机A上配置证书环境。

主机B上搭建CA证书环境

CA证书环境中,私钥的名称以及存放路径,还有证书的名称和存放路径都是有一定规则的,所以,如果不明白的话,可以查看/etc/pki/tls/openssl.cnf 文件。

1、构建私钥文件

这里我们没有采用加密的方式。

[root@localhost ~]#(umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem  2048 )Generating RSA private key, 2048 bit long modulus .............................................+++ .........................+++ e is 65537 (0x10001) 2、根据私钥文件,创建自签名的根CA证书

证书的名字必须是cacert.pem ,而且存放路径必须是/etc/pki/CA/cacert.pem

[root@localhost ~]#openssl req -new -x509 -key  /etc/pki/CA/private/cakey.pem -days 7300 -out  /etc/pki/CA/cacert.pem You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:shandong Locality Name (eg, city) [Default City]:qingdao Organization Name (eg, company) [Default Company Ltd]:pojun.tech Organizational Unit Name (eg, section) []:Opt Common Name (eg, your name or your server's hostname) []:ca.pojun.tech Email Address []:

此时如果我们去查看证书的内容话,是可以查看我们刚刚指定的这些信息的。

[root@localhost ~]#openssl x509 -in /etc/pki/CA/cacert.pem -noout -text Certificate:     Data:         Version: 3 (0x2)         Serial Number: 17076170100312404196 (0xecfabe3b994470e4)     Signature Algorithm: sha256WithRSAEncryption         Issuer: C=CN, ST=shandong, L=qingdao, O=pojun.tech, OU=Opt, CN=ca.pojun.tech         Validity             Not Before: Sep 29 03:40:10 2017 GMT             Not After : Sep 24 03:40:10 2037 GMT         Subject: C=CN, ST=shandong, L=qingdao, O=pojun.tech, OU=Opt, CN=ca.pojun.tech *******************省略了公钥和签名信息************************* 3、创建颁发证书必须的两个文件

如果不提前创建这两个文件,那么在生成证书的过程中会出现错误。
我们将文件创建在配置文件中指定的路径下面。

生成证书索引数据库文件 touch /etc/pki/CA/index.txt

指定第一个颁发证书的序列号 echo 01 > /etc/pki/CA/serial

在主机A上申请证书 1、首先安装mod_ssl动态模块

首先在主机A上安装mod_ssl 模块 ,然后我们来查看一下这个模块里面都包含哪些内容

[root@CentOS6 ~]$rpm -ql mod_ssl /etc/httpd/conf.d/ssl.conf  # 配置文件 /usr/lib64/httpd/modules/mod_ssl.so  # Apache 动态模块 /var/cache/mod_ssl /var/cache/mod_ssl/scache.dir /var/cache/mod_ssl/scache.pag /var/cache/mod_ssl/scache.sem

打开 /etc/httpd/conf.d/ssl.conf ,就会发现,mod_ssl已经帮助我们添加了证书文件,只不过这个证书文件没有任何的意义,我们接下来就是要申请证书,并把他们替换掉。

mod_ss

2、生成私钥文件

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/ea64fbf7c009a7847749d0ddf1b4d178.html