为编译安装的httpd提供基于ssl的安全会话


为编译安装的httpd。服务提供基于ssl的安全访问会话,即https,编译安装的httpd版本号为httpd-2.4.1 
注意:确保selinux已经处于disabled和permissive状态

1.首先修改openssl的配置文件openssl.cnf,要为自己的服务器提供一个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的绝对路径。
保存退出
2.生成CA密钥信息
#cd /etc/pki/CA
#(umask077; openssl genrsa 1024 > private/cakey.pem)   --生成CA证书密钥
#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 []:[email protected]

3.提供CA所需要的文件
#mkdir certs crl newcerts
certs                 证书目录
crl                   证书吊销列表目录
newcerts              新证书目录
生成两个空文件
#touch index.txt serial
index.txt              证书的索引文件
serial                 证书的序列号文件
#echo 01 > serial      给其一个初始序列号01
此时CA已经完整了。
4.为httpd服务提供密钥和证书
#cd /etc/httpd
#mkdir ssl
#cd ssl 
#(umask077;openssl genrsa 1024 > httpd.key)             --为httpd生成一个密钥文件
#openssl req -new -x509 -key httpd.key -out httpd.csr   --使用密钥向证书颁发机构请求证书(此处生成的文件为httpd.csr)
#openssl ca -in httpd.csr -out httpd.crt                --让服务器自己生成的CA为自己的证书申请请求签发
输入两次y即可,表示同意证书申请请求

#ls  会出现以下三个文件,说明证书已经签发成功
httpd.crt  httpd.csr  httpd.key

5.修改httpd的配置文件:
#vim /etc/httpd/httpd.conf  启用如下所示的支持ssl的模块

LoadModule ssl_module modules/mod_ssl.so

6.修改httpd的基于ssl会话的配置文件:编译安装的http的,ssl的配置文件在/etc/httpd/extra/目录中,就是httpd-ssl.conf
#vim /etc/httpd/extra/httpd-ssl.conf 修改<VirtualHost _default_:443>中的内容为自己的web服务器ip地址

<VirtualHost 172.16.24.1:443>
#   General setup for the virtual host
DocumentRoot "/var/www/html/www2"                 --修改提供的虚拟主机的网页路径,如果没提供虚拟主机默认路径/var/local/httpd/htdocs
ServerName www2.magedu.com:443                    --修改为那个一虚拟主机提供https服务,因为ssl只能为一台主机提供https服务
ServerAdmin [email protected]                       
#ErrorLog "/usr/local/apache/logs/error_log"      --定义错误日志路径
#TransferLog "/usr/local/apache/logs/access_log"  --定义访问日志路径

#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.

SSLCertificateFile "/etc/httpd/ssl/httpd.crt"     --定义证书文件存放路径
SSLCertificateKeyFile "/etc/httpd/ssl/httpd.key"  --定义证书密钥文件存放路径
#servive httpd restart
如果提示错误信息如下:
Syntax error on line 76 of /etc/httpd/extra/httpd-ssl.conf:
SSLSessionCache: 'shmcb' session cache not supported (known names: ). Maybe you need to load the appropriate socache module (mod_socache_shmcb?).
就将/etc/httpd/extra/httpd-ssl.conf文件中的SSLSessionCache模块注释掉即可,如下所示: 
#SSLSessionCache        "shmcb:/usr/local/apache/logs/ssl_scache(512000)"
#service httpd restart
7.导入CA证书到测试https的浏览器中
#cd /etc/pki/CA
#ls
会有一个cacert.pem文件,这是服务器自己给自己颁发的CA证书,修改其后缀名为.crt,即cacert.crt,然后导入到浏览器的可信任证书列表中,以实现httpd的安全传输

在浏览器中进行测试:
https://www2.magedu.com:80  如果配置正确。则此网页是安全传输的。
 

你可能感兴趣的:(职场,休闲,编译安装的httpd,ssl的安全会话)