广东省Linux中心论坛 - apache2 ssl配置方法

来源:百度文库 编辑:神马文学网 时间:2024/04/28 11:56:16
系统:RH9.0 AS3.0
软件包:httpd-2.0.50.tar.gz
openssl-0.9.7d.tar.gz
ssl.ca-0.1.tar.gz
安装过程
1安装openssl-0.9.7d
#tar zxvf openssl-0.9.7d.tar.gz
#cd openssl-0.9.7d
#./config
#make
#su
#make install
默认的安装是将openssl全部安装在 /usr/local/ssl 目录下面,所以编译apache的时候,需要指定ssl的目录:--with-ssl=/usr/local/ssl ,因为它在编译的时候要用到openssl提供的头文件和库。
2.安装httpd-2.0.50
#tar zxvf httpd-2.0.50.tar.gz
#./configure --prefix=/usr/local/apache2 --enable-so
--enable-ssl=static --with-ssl=/usr/local/ssl --enable-mods-shared=all
#make
#make install
安装的openssl默认是没有编译成动态链接库的,因为其文档说openssl的动态链接库还不成熟,可以使用 ./config shared 编译带动态链接库的openssl,但是还处于试验阶段。
解决这个问题的办法是:将mod_ssl静态的编译到apache里面。
3.制作证书
可以用来生成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]:GuangDong//随你喜欢
Locality Name (eg, city) [Sitiawan]:GuangZhou//随你喜欢
Organization Name (eg, company) [My Directory Sdn Bhd]:GDLC//随你喜欢
Organizational Unit Name (eg, section) [Certification Services Division]:GDLC//随你喜欢
Common Name (eg, MD Root CA) []:winson CA//随你喜欢
Email Address []:yu.hanhui@gd-linux.org//随你喜欢
这样就生成了ca.key和ca.crt两个文件,下面还要为我们的服务器生成一个证书:
# ./new-server-cert.sh server (这个证书的名字是server)
......
......
Country Name (2 letter code) [MY]:CN
State or Province Name (full name) [Perak]: GuangDong
Locality Name (eg, city) [Sitiawan]: GuangZhou
Organization Name (eg, company) [My Directory Sdn Bhd]:GDLC
Organizational Unit Name (eg, section) [Secure Web Server]:GDLC
Common Name (eg, www.domain.com) []:localhost
Email Address []:yu.hanhui@gd-linux.org
这样就生成了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:‘JiangSu‘
localityName :PRINTABLE:‘NanJing‘
organizationName :PRINTABLE:‘Wiscom System Co.,Ltd‘
organizationalUnitName:PRINTABLE:‘ACSTAR‘
commonName :PRINTABLE:‘acmail.wiscom.com.cn‘
emailAddress :IA5STRING:‘acmail@wiscom.com.cn‘
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
# cd ..
# mkdir ssl.key
# mv ssl.ca-0.1/server.key ssl.key
# mkdir ssl.crt
# mv ssl.ca-0.1/server.crt ssl.crt
然后就可以启动啦!
# cd /usr/local/apache2
# ./bin/apachectl startssl
对于这个提示:
httpd: Could not determine the server‘s fully qualified domain name, using 127.0.0.1 for ServerName
只需要编辑httpd.conf,找到ServerName xxxx这一行,去掉前面的注释即可。
浏览器https://127.0.0.1
成功!!