分类: LINUX
2010-03-06 21:46:49
给web加上安全的外衣
首先安装httpd包
其次要想能通过https访问则服务器需要监听443端口,然而要想监听443端口,就需要mod_ssl 模块的支持。查询一下安装了没yum list all |grep mod
我这里没装来装一下yum install mod_ssl我们安装一下
yum install mod_ssl
装好之后在/etc/httpd/conf.d/目录下会多一个名位ssl.conf的文件
在/etc/httpd/建一个ssl目录专门存放证书在ssl目录下见一个private目录来存放私钥
mkdir /etc/httpd/ssl
mkdir /etc/httpd/ssl/private
下面我们开始做证书
进入/etc/pki/CA目录生成密钥
cd /etc/pki/CA
然后做一个自签证书
openssl req -new -x509 -key private/cakey.pem -days 3665 -out cacert.pem
然后按照提示一次输入
CN
HA
ZZ
ZZU
SI
ca.test.com
为了服务器能做证书我们需要一个目录newcerts两个文件index.txt和serial并且在serical文件里写进一个两位整数eg:00
mkdir newcerts
touch serial
vim serial
输入00 保存退出
在/etc/pki/tls/的openssl.cnf文件里有一处目录路径需要改否则容易出错如下图dir =../../CA改为/etc/pki/CA 用全路径
进入/etc/httpd/ssl 生成一对密钥,这对密钥是www服务器向CA申请证书用的
cd /etc/httpd/ssl
openssl genrsa 1024 > private/
www服务器向CA请求证书
openssl req -new -key private/ -out
然后依次输入
CN
HA
ZZ
ZZU
SI
CA服务器给www服务器颁发证书
openssl ca -in -out ww.test.com.crt -days 1500
然后系统提示你是否颁发选y
OK到这里证书配置已经完成
下面我们到/etc/httpd/conf.d下编辑ssl.conf这个文件
把从
我们自己写一个
ServerName
DocumentRoot /var/ww/phpwind
ServerAdmin
ErrorLog /var/log/httpd/ssl/err_log
CustomLog /var/log/httpd/ssl/access_log \[\为换行符]
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/
SSLCERtificateKevFile /etc/httpd/ssl/private/ \
SSLCipherSuite ALL:!ADH:!EXPORT:! \ SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
测试一下语法service httpd configtest
重启服务 service httpd restart
下面我们测试一次在地址栏中输入https://则会出现此连接是不受信任的的画面
这是因为我们客户机上没有CA机构的证书不信任证书颁发机构有两种解决颁发
1. 点开我已充分了解可能的风险 添加例外
2. 将证书导入到我们的客户机证书在CA服务器上的/etc/pki/CA/下名字为cacert.pem 如果是IE浏览器的话一次点属性à内容à证书à受信任的根证书颁发机构à导入 ,然后按照向导将证书导进去(记得把cacert.pem的名字改为cacert.crt IE 不能识别以pem结尾的证书)
然后一直确定就可以了如果用的是火狐浏览器则点工具à选项à高级à加密à查看证书à证书机构à导入 导入后确定一下就可以了
这样我们就能够用https协议对网站进行访问了