配置Apache支持SSL

一.需要安装的软件包

       如果是发布版的linux,当安装了http服务器时,一般都会把下列的软件和模块都安装上。大家可以先查看下系统中是否已经安装了相应的软件包和模块,如果已经安装了,就可以直接进入第二部分。

1.1  OpenSSL

#tar zxvf openssl-0.9.7e.tar.gz
#cd openssl-0.9.7e
#./config
#make
#make install

此举将安装最新的OpenSSL/usr/local/ssl目录中,无需理会系统中已有版本的OpenSSL,也不要去卸载它,否则会导致 很多的应用程序无法正常执行,例如X窗口无法进入等错误。

1.2  Apache Httpd

#tar zxvf httpd-2.0.53.tar.gz
#./configure --prefix=/usr/local/apache2/ --enable-so --enable-ssl --with-ssl=/usr/local/ssl
#make
#make install

此步骤在/apache/httpd目录中安装httpd服务(通过参数--prefix指定),同时使用--with-ssl指定刚才所安装 OpenSSL的路径,用于将mod_ssl静态的编译到httpd服务中。

 

1.3  Rewrite模块

1.3.1 安装GDBM

Apache安装rewrite模块的时候需要DBM支持,否则无法编译,所以首先要安装一个GDBM

   下载地址:ftp://ftp.gnu.org/gnu/gdbm/

   安装步骤:

        进入安装目录,

         ./configure

         make

         make install

        make install-compat       (最后行也要执行。否则无法编译出ndbm.h头文件)

       如果您不能确定服务器上是否已经装有DBM,那么可以安装一下。否则这步可以跳过。

1.3.2 安装rewrite模块

1.编译模块

现在到apache源码目录的标准模块目录中(/root/apache_src/src/modules/standard/)中,使用如下指令编译出so文件:

    /usr/local/apache/bin/apxs -c mod_rewrite.c -lgdbm

  即可得到mod_rewrite.so文件。

    备注:"-lgdbm"是用为说明在编译mod_rewrite.c时要把gdbm链接进来。这样在第6步启动apache时就不会报出"dbm fetch"的错误了。

 

2.安装模块

执行apache/bin目录下的apxs如下:

       /usr/local/apache/bin/apxs -i -A -n rewrite /root/apache_1.3.34/src/modules/standard/mod_rewrite.so

       作用:向http.conf配置文件中加入LoadModule语句,并自动将mod_rewrite.so文件拷贝到apache/libexec目录

       备注:命令中的rewrite参数是告诉apxs命令mod_rewrite.so文件中的模块名。在命令执行后,apxs会在LoadModule中为 rewrite加上"_module"以标名模块名称。如果你在启动apache时发现总是给出“不能定位API”之类的错误,那就是说明 LoadModule后面的模块名的语法要根据您的apache版本加以改变。

二.制作证书

我们必须手工来生成SSL用到的证书,对证书不熟悉的人,有一个工具可以使用:http://www.openssl.org/contrib/ssl.ca-0.1.tar.gz

下面是如何通过这个工具来生成证书的过程:

#cp ssl.ca-0.1.tar.gz /apache/httpd/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.keyca.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.csrserver.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

三.修改apache的配置文件

# 关于证书,添加如下内容

SSLCertificateFile "/usr/local/apache2/ssl/server.crt"
SSLCertificateKeyFile "/usr/local/apache2/ssl/server.key"
SSLCACertificatePath "/usr/local/apache2/ssl"
SSLCACertificateFile "/usr/local/apache2/ssl/ca.crt"
SSLVerifyClient require
SSLVerifyDepth  10

 

# 关于端口,屏蔽下列内容

Listen *80

四、测试HTTPS服务

使用浏览器打开地址:https://127.0.0.1  完毕!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值