安装配置https 双向认证

作者: jaclon 分类: Linux, PHP 发布时间: 2013-02-06 10:27 ė 62条评论

本文是安装https双向认证的记录,系统环境是Centos 6.3 、32位

一、准备所需安装包

1.openssl wget http://www.openssl.org/source/openssl-1.0.0a.tar.gz

2.httpd wget http://apache.dataguru.cn/httpd/httpd-2.2.23.tar.gz

3. 证书工具包 ssl.ca wget http://www.openssl.org/contrib/ssl.ca-0.1.tar.gz

 

我第一次下载的openssl其实是openssl-1.0.1.c.tar.gz ,但无法正常安装httpd,大家在安装的时候注意一下,我不确定是什么原因造成的。

二、安装软件

1.安装openssl

# tar zxvf openssl-1.0.0a.tar.gz
# cd openssl-1.0.0a
# ./config --prefix=/usr/local/openssl
# make && make install

2.安装httpd

# tar zxvf httpd-2.2.23.tar.gz
# cd httpd-2.2.23
# ./configure --prefix=/usr/local/apache \
--enable-ssl \
--enable-rewrite \
--enable-so \
--with-ssl=/usr/local/openssl
# make && make install

可以启动httpd看看,启动命令是/usr/local/apache/bin/apachectl start,在浏览器中访问看看,显示 It workds!说明安装成功了

三、创建证书

1.解压工具包

# tar zxvf ssl.ca-0.1.tar.gz
# cd ssl.ca-0.1

2.创建根证书

# ./new-root-ca.sh
No Root CA key round. Generating one
Generating RSA private key, 1024 bit long modulus
....++++++
...................++++++
e is 65537 (0x10001)
Enter pass phrase for ca.key:
Verifying - Enter pass phrase for ca.key:

Self-sign the root CA...
Enter pass phrase for ca.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [MY]:cn
State or Province Name (full name) [Perak]:cn
Locality Name (eg, city) [Sitiawan]:cn
Organization Name (eg, company) [My Directory Sdn Bhd]:cn
Organizational Unit Name (eg, section) [Certification Services Division]:cn
Common Name (eg, MD Root CA) []:172.16.17.132 //这里填站点域名,我是测试的就填ip
Email Address []:cn@gmail.com

这个过程要设置证书密码,要记住这个密码后面要用到,还有证书的其它信息:国家、地区、公司名称,域名,邮箱等,这些信息也要记住,与后面创建的证书主体信息一致

3.创建服务器证书

# ./new-server-cert.sh server
...

即创建一个名为server的服务器证书,主体信息与上面的一致就可,我这里就不贴出来了

签名刚才生成的服务器证书

# ./sign-server-cert.sh server

这个过程要输入根证书密码,后面都选Y即可

4.创建客户端证书,如果是单向认证,这一步可以跳过

# ./new-user-cert.sh client
...

这里要注意证书信息不能与其它证书完全一样,这里修改Email与服务器证书不一样就行

签名客户端证书

# ./sign-user-cert.sh client

转换成p12格式证书,这样才能在浏览器上安装

# ./p12.sh client

下载并安装client.p12证书

四、配置httpd

1.修改httpd.conf
#Include conf/extra/httpd-ssl.conf 把这句前面的#去掉

2.将前面生成的证书拷贝到conf/ssl 下

# mkdir ssl
# cd ssl
# cp /ssl.ca-0.1/ca.crt ./
# cp /ssl.ca-0.1/server.* ./

2.修改httpd-ssl.conf
SSLCertificateFile “/usr/local/apache/conf/ssl/server.crt”
SSLCertificateKeyFile “/usr/local/apache/conf/ssl/server.key”
下面是开启客户端认证,如果是单向认证就不用开启了
SSLCACertificateFile “/usr/local/apache/conf/ssl/ca.crt”
SSLVerifyClient require
SSLVerifyDepth 10

五、重启httpd

[root@localhost extra]# ../../bin/apachectl -t
Syntax OK
[root@localhost extra]# ../../bin/apachectl stop
[root@localhost extra]# ../../bin/apachectl -D SSL -k start

本文出自 肥蕉博客@IT技术,热门话题,生活随笔,美图欣赏,转载时请注明出处及相应链接。

本文永久链接: http://www.bananawolf.com/html/2013/02/908.html

2条评论

  1. 熟女控 二月 19, 2013 4:20 下午 回复

    草根站长很不容易啊,坚持下去,加油加油。
    有空来我的小站回访一下哈。诚意交换友情链接。

  2. 藏章博客 二月 28, 2013 6:09 下午 回复

    好久没来博主博客了,就来看看!~大家 相互访问

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

Ɣ回顶部