Chinaunix首页 | 论坛 | 博客
  • 博客访问: 425660
  • 博文数量: 112
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1085
  • 用 户 组: 普通用户
  • 注册时间: 2013-01-15 09:42
个人简介

上善若水,不浮不沉!

文章存档

2021年(2)

2020年(3)

2018年(2)

2017年(1)

2016年(8)

2015年(11)

2014年(57)

2013年(28)

我的朋友

分类: LINUX

2014-05-21 08:38:54

配置apache验证客户端证书

1、建立CA认证

#修改openssl.cnf文件

vi /etc/pki/tls/openssl.cnf

#修改[ CA_default ]下的dir = 设置为

dir = /etc/pki/CA

#转到CA目录

cd /etc/pki/CA

#生成私钥文件

mkdir private

openssl genrsa -out private/cakey.pem 1024

#设置400权限

chmod 400 private/cakey.pem

#基于这个私钥自行签署证书

openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655

cp  prvate/cacert.pem   ca.crt

注意:证书只有放在/etc/pki/CA下才可以用
#创建需要使用的目录和文件

mkdir certs newcerts crl

touch index.txt serial

echo 01 > serial

#这些目录与文件的作用

certs 存放证书的位置

crl 存放证书调销列表

index.txt 存放都发给谁证书了,发了第几个了

newcerts 存放生成的新证书

serial 内部管理序列号,默认从00或01开始

这些文件的名字任意,但要与/etc/pki/tls/openssl.cnf中的配置保持一致

#将根证书转换成浏览器支持的.p12(PKCS12)格式

openssl pkcs12 -export -clcerts -in cacert.pem -inkey private/cakey.pem -out private/ca.p12

#生成后导入浏览器中受信任的证书颁发机构后重启浏览器,否则颁发的证书会提示证书不受信任。

firefox里面在信任证书导入证书文件不导P12格式也可以,

完成以上设置后,现在就可以颁发证书了。

2、客户端申请证书

#建立存放私钥的目录

mkdir /etc/ssl

cd /etc/ssl

#生成私钥

openssl genrsa -out c.key 1024

chmod 600 host.key

#生成申请

openssl req -new -key c.key -out c.csr

#把host.csr发送到CA主机,直接拷贝过去也可以

scp c.csr ip:/tmp

#在CA主机上签署证书

#由于传送到了/tmp目录,所以先转到/tmp

cd /tmp

openssl ca -in c.csr -out c.crt

#一路Yes即可

#客户端获取颁发的证书或直接拷贝过去

scp ip:/etc/pki/CA/newcerts/host.crt

#将客户端证书和私钥打包成P12格式,导入IE或者firefox您的证书

openssl pkcs12 -export -clcerts -in c.crt -inkey c.key -out c.p12

 

3服务器申请证书

 

#建立存放私钥的目录

mkdir /etc/ssl

cd /etc/ssl

#生成私钥

openssl genrsa -out s.key 1024

chmod 600 host.key

#生成申请

openssl req -new -key s.key -out s.csr

#把host.csr发送到CA主机,直接拷贝过去也可以

scp s.csr ip:/tmp

#在CA主机上签署证书

#由于传送到了/tmp目录,所以先转到/tmp

cd /tmp

openssl ca -in s.csr -out s.crt

#一路Yes即可

#客户端获取颁发的证书或直接拷贝过去

scp ip:/etc/ssl/s.crt

[客户端证书服务器证书没有本质差别,申请时候不同证书common 要不同]

 

配置apache    

  [vi /etc/httpd/conf.d/ssl.conf]

指定服务器证书位置(将证书cp过去或修改指定路径)
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
指定服务器证书key位置
SSLCertificateKeyFile /usr/local/apache/conf/ssl.crt/server.key证书目录
CA根证书位置
SSLCACertificateFile /usr/local/apache/conf/ssl.crt/ca.crt
开启客户端SSL请求
SSLVerifyClient require
SSLVerifyDepth  1 

 

 

 

 

 

 

 

 

 

 


阅读(2302) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~