具体apache服务器的搭建过程我前面的博客中已经有提到过,这里不再重复了,下面只列出ssl相关配置的部分:
配置HTTPS,yum install mod_ssl,ssl会话的建立是基于IP地址的,如果一台主机上面有多个虚拟主机只能为其中一个主机提供SSL的功能,
默认情况是是为默认的虚拟主机提供ssl功能
1、首先自己建立一个CA
cd /etc/pki/CA
openssl genrsa 2048 > private/cakey.pem
chmod 600 private/cakey.pem
然后给CA自己制作一个证书
vi /etc/pki/tls/openssl.cnf
找到[CA_defualt]把下面的目录改为:
dir = /etc/pki/CA改成绝对路径
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
这个cacert.pem是给客户端使用的用来验证此CA办法的其他证书,下载在windows下面更名
cacert.crt可以导入浏览器
2、给http服务颁发证书
cd /etc/pki/CA
mkdri certs crl newcerts
touch serial index.txt
echo 01 > serial
cd /etc/httpd
mkdir ssl用来存放证书,cd ssl
自己生成一个证书
openssl genrsa 2048 > httpd.key
chmod 600 httpd.key
向CA生成一个证书办法请求
openssl req -new -key httpd.key -out httpd.csr
为此httpd服务器颁发证书
openssl ca -in httpd.csr -out httpd.crt -days 3650 此时httpd.csr文件就没用了,可以删除
3、修改配置文件,让httpd启用ssl
vi /etc/httpd/conf.d/ssl.conf这个文件是安装mod_ssl时候自动生成的
找到<VirtualHost _default_:443>修改你需要为哪台主机提供ssl功能,主机名称,以及网页根目录
找到SSLCertificateFile,指定httpd.crt证书文件的存放路径
找到SSLCertificateKeyFile,指定httpd.key密钥文件的存放路径
找到SSLCACertificateFile,指定CA证书的存放路径
其他配置参数
SSLVerifyClient require 如果启用则客户端必须有证书才能访问该web服务器
好了完了测试一下会发现,和该web站点的所有会话都是通过ssl来加密的。