为使用yum安装的httpd服务提供基于ssl的安全访问会话,即https
注:确保selinux已经处于disabled和permissive状态
一、首先确保mod_ssl软件包要安装上
#yum install mod_ssl -y
#rpm -ql mod_ssl 查看其生成了哪些文件
二、修改openssl的配置文件openssl.cnf,要为提供web的httpd服务本身提供一个CA证书
#cd /etc/pki/tls/
#vim openssl.cnf 要修改的内容如下:
[ CA_default ]
dir = ../../CA # Where everything is kept
certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
编辑它,将“dir = ../../CA ” 目录改为“ dir =/etc/pki/CA ” 目的是使用CA的绝对路径。
保存退出
三、生成CA密钥信息
#cd /etc/pki/CA
#(umask077; openssl genrsa 1024 > private/cakey.pem) --生成CA证书密钥
#ll private/ 确保key.pem为600权限
#openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3656 --发出申请证书请求,会出现如下所示的提示信息
County Name (2 letter code) [GB]:CN
State or Province Name (full name) [Berkshire]:Henan
Locality Name (eg,city) [Newbury]:Zhengzhou
Organization Name (eg,company) [My Company Ltd]:magedu
Organization Unit Name (eg,section) []:tech
Common Name (eg,your name or your server's hostname) []:此处要写自己CA服务器的名字,比如ca.magedu.com
Email Address []:ca@magedu.com
四、提供CA所需要的文件
#mkdir certs crl newcerts
certs 证书目录
crl 证书吊销列表目录
newcerts 新证书目录
生成两个空文件
#touch index.txt serial
index.txt 证书的索引文件
serial 证书的序列号文件
#echo 01 > serial 给其一个初始序列号01
此时CA已经完整了。
五、为httpd服务签发证书
#cd /etc/httpd/conf
#mkdir ssl
#cd ssl
#(umask077; openssl genrsa 1024 > httpd.key)
#ll 确保httpd.key文件是600权限
#openssl req -new -key httpd.key -out httpd.csr
#openssl ca -in httpd.csr -out httpd.crt --让CA为服务器自身签发证书
#y
#y
安装了mod_ssl之后,它会提供了一个片段文件 /etc/httpd/conf.d/ssl.conf
#vim /etc/httpd/conf.d/ssl.conf 修改如下信息:
<VirtualHost _default_:443> --可以修改为提供https的服务器的ip地址,如:<VirtualHost IP:443>
DocumentRoot "/var/www/html" --默认的http服务的网页文件存放路径,可以自定义
ServerName www.example.com:443 --可以为提供http服务的主机提供一个域名,如:www.discuz.com
ErrorLog logs/ssl_error_log --默认是启用的,可以自定义其路径
TransferLog logs/ssl_access_log --默认也是启用的,也可以自定义其路径
LogLevel warn --默认日志级别
SSLEngine on --默认是开启的
SSLCertificateFile /etc/pki/tls/certs/localhost.crt --默认证书文件路径和证书
此处应该修改为SSLCertificateFile /etc/httpd/conf/ssl/httpd.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key --默认私钥文件路径和私钥
此处应该修改为SSLCertificateKeyFile /etc/httpd/conf/ssl/httpd.csr
保存退出
注:此时要将CA自己生成的证书导入到浏览器(使用哪一个浏览器进行https测试,就导入到那个浏览器中)中的可信任证书列表中,导入前将证书后缀名改为.crt,
此处证书为cacert.pem ,复制到winxp系统后,修改为cacert.crt,然后导入到浏览器中即可进行测试。
输入https://www.discuz.com 如果一切正常,则会显示此网页的传输是安全的。