2014-12-14 21:27:01
来 源
kejihao
Apache
此文详细介绍Apache服务器中SSL证书的配置和安装,希望对于初学Apache服务器相关的朋友有帮助,更多Apache安装、配置、报错处理等资源请本站内搜索。

apache ssl 安装/配置/证书,openssl,ca,证书安装/生成

一. 我的系统环境:centos5 x64

二. 所需软件包:

1.httpd-2.2.8.tar.gz

2.openvpn-2.0.9.tar.gz (用他的证书申请功能,或者直接下openssl也可以)

3.ssl.ca-0.1.tar.gz (可以很简单的产生证书,当然直接用openssl也可以,只是比较麻烦)

由于我搞得有点乱,有什么没写清楚的提出来.

安装httpd-2.2.8

#tar zxvf httpd-2.2.8.tar.gz

# cd  httpd-2.2.8

#./configure --prefix=/usr/local/apache2 --enable-so

--enable-ssl --enable-mods-shared=all

#make

#make install

接下来,更改设置文件

对于httpd.conf和ssl.conf,如果你的服务器没有域名,那么servername就填ip好了.

比如:ServerName 10.10.10.10:80(httpd.conf)

ServerName 10.10.10.10:443(ssl.conf) (默认的就行拉)

打开httpd.conf:

找到#LoadModule ssl_module modules/mod_ssl.so,去掉前面的’#',这样就在启动时加载了ssl模块.

打开ssl.conf:

找到#;和#;,把前面的’#'号都去掉,否则启动apache时还要加参数,麻烦.

如下设置:

SSLMutex none (这个我是none,有人是default,具体怎么设可以研究一下)

SSLCertificateFile conf/server.crt (服务器证书的位置,就是公钥吧?)

SSLCertificateKeyFile conf/server.key (服务器私钥的位置)

SSLCACertificateFile conf/ca.crt (CA根证书的位置,进行客户端验证时需要.也是一个CA公钥吧?

我把它们都放在apache的conf目录下了)

DocumentRoot “/web/test/” (指向要ssl加密认证的文档目录,)

SSLVerifyClient require (去掉前面的’#'号,进行客户端验证时需要)

SSLVerifyDepth 1 (去掉前面的’#'号,把10改为1,进行客户端验证时需要)

#安装openvpn需要

wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.02.tar.gz

tar -xzvf lzo-2.02.tar.gz

cd lzo-2.02

./configure

make

make install

wget http://openvpn.net/release/openvpn-2.0.9.tar.gz

tar -xzvf openvpn-2.0.9.tar.gz

cd openvpn-2.0.9

./configure --prefix=/usr/local/openvpn/

make

make install

制作证书

可以用来生成ssl所用到的证书.

现在没有这个工具了,只能自己动手生成了,对证书不熟悉的人,有一个工具可以使用:http://www.openssl.org/contrib/ssl.ca-0.1.tar.gz

#cp ssl.ca-0.1.tar.gz /usr/local/apache2/conf

#cd /usr/local/apache2/conf

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

#cd ssl.ca-0.1

#./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: (输入刚刚设置的密码)

........

........ (下面开始签署)

Country Name (2 letter code) [MY]:CN

State or Province Name (full name) [Perak]:SiChuan//随你喜欢

Locality Name (eg, city) [Sitiawan]:ChengDu//随你喜欢

Organization Name (eg, company) [My Directory Sdn Bhd]:XOK//随你喜欢

Organizational Unit Name (eg, section) [Certification Services Division]:XOK//随你喜欢

Common Name (eg, MD Root CA) []:winson CA//随你喜欢

Email Address []:[email protected]//随你喜欢

这样就生成了ca.key和ca.crt两个文件,下面还要为我们的服务器生成一个证书:

# ./new-server-cert.sh server (这个证书的名字是server)

......

......

Country Name (2 letter code) [MY]:CN

State or Province Name (full name) [Perak]: SiChuan

Locality Name (eg, city) [Sitiawan]: ChengDu

Organization Name (eg, company) [My Directory Sdn Bhd]:XOK

Organizational Unit Name (eg, section) [Secure Web Server]:XOK

Common Name (eg, http://www.xok.la/) []:localhost

Email Address []:[email protected]

这样就生成了server.csr和server.key这两个文件.

还需要签署一下才能使用的:

# ./sign-server-cert.sh server

CA signing: server.csr -> server.crt:

Using configuration from ca.config

Enter pass phrase for ./ca.key: (输入上面设置的根证书密码)

Check that the request matches the signature

Signature ok

The Subject's Distinguished Name is as follows

countryName :PRINTABLE:'CN'

stateOrProvinceName :PRINTABLE:'SiChuan'

localityName :PRINTABLE:'ChengDu'

organizationName :PRINTABLE:'Wiscom System Co.,Ltd'

organizationalUnitName:PRINTABLE:'ACSTAR'

commonName :PRINTABLE:'xok.la'

emailAddress :IA5STRING:[email protected]'

Certificate is to be certified until Jul 16 12:55:34 2005 GMT (365 days)

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

Write out database with 1 new entries

Data Base Updated

CA verifying: server.crt <-> CA cert

server.crt: OK

(如果这里出现错误,最好重新来过,删除ssl.ca-0.1这个目录,从解压缩处重新开始.)

下面要按照ssl.conf里面的设置,将证书放在适当的位置.

# chmod 400 server.key

# mv server.key /usr/local/apache2/conf/

# mv server.crt /usr/local/apache2/conf/

# mv ca.crt     /usr/local/apache2/conf/

然后就可以启动啦!

四. 测试

# cd /usr/local/apache2

# ./bin/apachectl start

浏览器https://127.0.0.1/

成功!如果可以访问到apache的欢迎页面,就说明正常了.到次为止,apache配置页面认证的设置已经完成了.

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。