码迷,mamicode.com
首页 > Web开发 > 详细

基于httpd的https

时间:2016-04-20 18:18:55      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:https ca


服务器IP版本
CA192.168.0.100/ca.abc.comCentOS7
httpd192.168.0.110/www.abc.comCentOS6.7


1. 为httpd服务器申请数字证书

1.1 创建私有CA(CA服务器)

~]# cd /etc/pki/CA/

CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048)(创建私有CA)

技术分享

CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 7300(生成自签证书,Ctrl+Backspace可进行修改)

自签证书依次填入:CN、Jiangsu、城市、公司、Ops、ca.abc.com、邮箱(可省略)

CA]# touch index.txt

CA]# echo 01 > serial


1.2 创建证书签署请求(httpd服务器)

在/etc/httpd/目录下创建ssl,进入ssl

ssl]# (umask 077;openssl genrsa -out httpd.key 1024)(生成私钥)

技术分享

ssl]# openssl req -new -key httpd.key -out httpd.csr(创建证书签署请求)

注:请求信息中hostname为www.abc.com,必须与访问域名一致。

ssl]# scp httpd.csr CA_ServerIP:/tmp/(发送签署请求给CA服务器)


1.3 CA签证(CA服务器)

~]# cd /etc/pki/CA/

CA]# openssl ca -in /tmp/httpd.csr -out certs/httpd.crt(签署发送来的请求证书)

CA]# scp certs/httpd.crt HTTPD_ServerIP:/etc/httpd/ssl(将证书发送给客户端)


2. 配置httpd服务器支持ssl及使用的证书

~]# yum -y install mod_ssl(安装完即通过配置文件加载模块)

~]# vim /etc/httpd/conf.d/ssl.conf

DocumentRoot "/var/www/html"
#取消注释,如有需要修改当前路径
ServerName www.abc.com:443
#取消注释,并修改域名
SSLCertificateFile /etc/httpd/ssl/httpd.crt
#修改默认指定的SSL证书存放位置
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key
#修改默认指定的SSL私钥文件存放位置

技术分享

其他功能注解(无须修改):

SSLEngine on 
#开启SSL功能
SSLProtocol all -SSLv2 
#支持SSL所有协议,但不支持SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA 
#支持的SSL加密方式,!表示不支持

~]# httpd -t(测试语法)

~]# service httpd restart(改变监听端口)

因为指向默认路径,故同时支持http和https,若只允许https,关闭Listen 80;但客户访问一般只会访问http,所以不能简单关闭80端口,需做URL重定向。


3. 测试基于https访问响应的主机

~]# openssl s_client

~]# openssl s_client -connect www.abc.com:443 -CAfile /etc/pki/CA/cacert.pem(CA服务器上验证)

其他客户端浏览器访问https需导入cacert.pem证书,否则为不安全的连接










本文出自 “kim1220” 博客,请务必保留此出处http://228984.blog.51cto.com/218984/1765818

基于httpd的https

标签:https ca

原文地址:http://228984.blog.51cto.com/218984/1765818

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!