为了模拟真实环境,这里使用的两台服务器做测试,也可以在一台服务器操作下面的步骤。
私有CA认证机构(192.168.100.200)
1、cd /etc/pki/CA
2、(umask 077; openssl genrsa -out private/cakey.pem) #生成一对密钥
3、openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3667 #生成自签证书,然后填写相关信息,后面web服务器生成证书颁发请求时候填写的信息要一致,由于前面5项我已经在/etc/pki/tls/openssl.cnf 定义好了默认信息,这里都默认。
4、vim /etc/pki/tls/openssl.cnf #编辑此文件
找到[ CA_default ]
将下面的 dir = ../../CA
改成绝对路径: dir = /etc/pki/CA
5、mkdir certs crl newcerts
touch index.txt
echo 00 > serial #设置序列号
web服务器配置(192.168.100.100)
1、yum install -y httpd #安装apache
2、yum install -y mod_ssl #安装ssl模块
3、vim /etc/httpd/conf/httpd.conf
找到DocumentRoot "/var/www/html" 前面加上#注释,即取消中心主机,开启虚拟主机
4、vim /etc/httpd/conf.d/amd5.cn.conf添加下面内容
<VirtualHost 192.168.100.100:80>
ServerAdmin admin@amd5.cn
DocumentRoot /www/html/amd5.cn/web
ServerName amd5.cn
Serveralias www.amd5.cn
ErrorLog /www/html/amd5.cn/logs/error_log
CustomLog /www/html/amd5.cn/logs/access_log common
</VirtualHost>
5、mkdir -pv /www/html/amd5.cn/{web,logs}
6、mkdir /etc/httpd/ssl
7、cd /etc/httpd/ssl
8、(umask 077; openssl genrsa 1024 >amd5.key) #创建一对1024位长度的密钥
9、openssl req -new -key amd5.key -out amd5.csr #生成证书颁发请求(然后将请求传送给CA服务器),此处填写的信息要和前面CA生成自签证书时候填写的信息要一致,这里我没有修改配置文件,所以手动填写。
10、 scp amd5.csr root@192.168.100.200:/root/ #复制请求到CA认证服务器
远程到CA认证服务器192.168.100.200然后执行下面命令
openssl ca -in /root/amd5.csr -out /root/amd5.crt -days 3650 #CA端 签署此证书10年的有效期
错误1:
wrong number of fields on line 1 (looking for field 6, got 1, '' left)
原因是你的index.txt文件不为空,改为空文件即可。
错误2:
error while loading serial number
3078239980:error:0D066096:asn1 encoding routines:a2i_ASN1_INTEGER:short line:f_int.c:215:
原因:是因为serial文件中没有赋初值,即没有执行echo 00 > serial
11、scp root@192.168.100.200:/root/amd5.crt ./etc/httpd/ssl/ #下载签署以后的证书到web服务器/etc/httpd/ssl/目录
12、cd /etc/httpd/conf.d
cp ssl.conf ssl.conf.bak #备份ssl.conf文件
vim ssl.conf #编辑此文件
1.找到<VirtualHost _default_:443>改成<VirtualHost 192.168.100.100:443>
2.找到:
#DocumentRoot "/var/www/html"
#ServerName www.example.com:443
在下面添加两行
ServerName www.amd5.cn
DocumentRoot "/www/html/amd5.cn/web/"
3.找到SSLCertificateFile /etc/pki/tls/certs/localhost.crt
改成SSLCertificateFile /etc/httpd/ssl/amd5.crt
4.找到SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
改成SSLCertificateKeyFile /etc/httpd/ssl/amd5.key
13、service httpd restart
查看443端口是否被监听lsof -i:443
14、vim /etc/sysconfig/iptables添加下面一行,允许443端口外部访问
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
/etc/init.d/iptables restart #重启防火墙让修改生效
15、修改本地host文件,C:\Windows\System32\drivers\etc添加一行:
192.168.100.100 www.amd5.cn
16、本地浏览器输入https://www.amd5.cn 访问测试。