前提:
本实验需要用到两台虚拟主机。
一台ip为172.16.20.1为www服务器主机。
一台ip为172.16.20.3为CA认证机构主机。
另外在windows系统下用浏览器下访问服务上面的一个网页输入https://172.16.20.1。
1.在172.16.20.3上面配置CA:
1)在/etc/pki/private下面创建一个密钥cakey.pem。制作做成如下:
#cd /etc/pki/CA/private
#(umask 077; openssl genrsa -out private/cakey.pem 2048)
创建密钥并输出到/etc/pki/CA/private/cakey.pem,这里是存放CA的密钥,固定写法"private/cakey.pem"。
2)将/etc/pki/tls/openssl.cnf 里面的信息做下修改,做一个自签证书的默认信息。
#vim /etc/pki/tls/openssl.cnf
#openssl req -new -x509 -key private/cakey.pem -out etc/pki/CA/cacert.pem -days 3655
这个命令是生成一个自签的证书,证书的名为cacert.pem."cacert.pem"也是固定写法,因为我们的/etc/pki/tls/openssl.cnf里面的配置信息就是cacert.pem.
#mkdir /etc/pki/CA/{certs ,crl, newcerts}
#touch index.txt
#echo 01 >serial
以前是创建CA所需要的文件和目录。
2.www服务器申请证书的过程:
#yum install -y mod_ssl www服务器如要要让客户使用https访问网站的话需要安装mod_ssl.
#mkdir /etc/httpd/ssl
#cd /etc/httpd/ssl/
#(umask 077; openssl genrsa 1024 > httpd.key) 创建密钥
#openssl req -new -key httpd.key -out httpd.csr 创建申请证书。
#scp httpd.csr 172.16.20.3:/tmp #服务器发送申请书httpd.csr发给CA让他签署
3.CA机构进行签署再发给服务器:
#openssl -in /tmp/httpd.csr -text 查看www服务器发过来的申请证书内容
#openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt -days 3655 签发证书并确认。
scp /tmp/httpd.crt 172.16.20.1:/tmp 然后发给www服务器端。
4.服务器对发过来的证书配置:
#mv /tmo/httpd.crt /etc/httpd/ssl/httpd.crt 将ca签发的证书放到一个合适的位置。
#cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.bak 将默认配置做下备份以防万一我们修改错了。
#vim /etc/httpd/conf.d/ssl.conf 将mod_ssl中的配置信息上证书存在的位置和密钥存在位置修改下。
|