为使用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 如果一切正常,则会显示此网页的传输是安全的。