Apache2 + mod_ssl + php5 完全安装实录(1)

原创 2004年08月10日 10:06:00

原始地址:http://blog.njmars.com/myhan/archive/2004/07/16/210.aspx

环境:
RedHat 9.0
说明:
使用$ 开头的是普通用户身份执行的命令
使用# 开头的是root帐号执行的命令

第一步:安装apache
下载apache2: http://httpd.apache.org/download.cgi
我需要mod_ssl的支持,和apache1不同的是,mod_ssl不在是单独的模块,而是放在apache发行包里面了,默认是不启用的,config的时候选择上就可以了。
我使用DSO方式编译安装apache,同时将全部模块都编译好,以方便后来可能的需要。只要编辑httpd.conf,在里面去掉不想要的模块(注释或者删除对应模块的LoadModule行),就可以定制自己的apache咯。
$ tar zxvf httpd-2.0.50.tar.gz
$ ./configure --prefix=/usr/local/apache2 --enable-so --enable-ssl=shared --enable-mods-shared=all --with-ssl=/usr/local/ssl
$ make
$ su
# make install

Apache有两种使用模块的方法,其一是永久性包含进核心;
如果操作系统支持动态共享对象(DSO),而且能为autoconf所检测,则模块还可以被动态编译。
DSO模块的存储是独立与核心的,可以被核心使用由mod_so模块提供的运行时刻配置指令包含或排除。
如果编译中包含有任何动态模块,则mod_so模块会被自动包含进核心。如果希望核心能够装载DSO,而不实际编译任何动态模块,需要明确指定--enable-so
(http://kajaa.bbs.us/ApacheManual/install.html)

第一次按照上述方法编译的apache,启动的时候会报错:
# cd /usr/local/apache2
# ./bin/apachectl startssl
Syntax error on line 251 of /usr/local/apache/conf/httpd.conf:
Cannot load /usr/local/apache/modules/mod_ssl.so into server: /usr/local/apache/modules/mod_ssl.so: undefined symbol: X509_free

原因是什么呢?看 http://www.smartframeworks.com/qt-apache-ssl.html
因为按照下面的方法(参看:Apache2 + mod_ssl + php5 完全安装实录(2))安装的openssl默认是没有编译成动态链接库的,因为其文档说openssl的动态链接库还不成熟,可以使用 ./config shared 编译带动态链接库的openssl,但是还处于试验阶段。
解决这个问题的办法是:将mod_ssl静态的编译到apache里面。
请使用下面的方法重新来过:)
$ ./configure --prefix=/usr/local/apache2 --enable-so --enable-ssl=static --with-ssl=/usr/local/ssl --enable-mods-shared=all
$ make
$ su
# make install

这次启动apache的时候又发现一个错误:
# cd /usr/local/apache2
# ./bin/apachectl startssl
Syntax error on line 108 of /usr/local/apache2/conf/ssl.conf:
SSLCertificateFile: file '/usr/local/apache2/conf/ssl.crt/server.crt' does not exist or is empty

这又是什么原因呢?因为我们没有配置ssl,需要生成ssl需要的证书。
以前使用apache1+mod_ssl的时候,make之后有一个这样的步骤
$ make certificate
可以用来生成ssl所用到的证书。
现在没有这个工具了,只能自己动手生成了,对证书不熟悉的人,有一个工具可以使用:http://www.openssl.org/contrib/ssl.ca-0.1.tar.gz
# 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]:JiangSu
Locality Name (eg, city) [Sitiawan]:NanJing
Organization Name (eg, company) [My Directory Sdn Bhd]:Wiscom System Co.,Ltd
Organizational Unit Name (eg, section) [Certification Services Division]:ACSTAR
Common Name (eg, MD Root CA) []:WISCOM CA
Email Address []:acmail@wiscom.com.cn

这样就生成了ca.key和ca.crt两个文件,下面还要为我们的服务器生成一个证书:
# ./new-server-cert.sh server              (这个证书的名字是server)
......
......
Country Name (2 letter code) [MY]:CN
State or Province Name (full name) [Perak]:JiangSu
Locality Name (eg, city) [Sitiawan]:NanJing
Organization Name (eg, company) [My Directory Sdn Bhd]:Wiscom System Co.,Ltd
Organizational Unit Name (eg, section) [Secure Web Server]:ACSTAR
Common Name (eg,
www.domain.com) []:acmail.wiscom.com.cn
Email Address []:acmail@wiscom.com.cn

这样就生成了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这一行,去掉前面的注释即可。

Linux下apache、openssl、mod_ssl安装、配置

(caichengyu 2013/5/10) 下载 1、下载 mod_ssl 和 apache 登入http://www.modssl.org/source/,如下图,下载最新版的。 [解...
  • ccy365263452
  • ccy365263452
  • 2013年06月10日 12:17
  • 8997

Apache 使用ssl模块配置HTTPS

Web服务器在默认情况下使用HTTP,这是一个纯文本的协议。正如其名称所暗示的,纯文本协议不会对传输中的数据进行任何形式的加密。而基于HTTP的Web服务器是非常容易配置,它在安全方面有重大缺陷。任何...
  • sunboy_2050
  • sunboy_2050
  • 2016年02月06日 09:05
  • 40464

使用Apache,配置modSSL,使其支持https访问

1. 安装Apache服务器,支持OpenSSL 在官网下载所需要的软件,网址:https://archive.apache.org/dist/httpd/binaries/win32/ 我的版本是...
  • fjx1173865548
  • fjx1173865548
  • 2016年12月18日 18:45
  • 1269

openssl + apache + mod_ssl安装配置调试过程

主要介绍在linux下怎么搭建一个包含mod_ssl模块的apache服务器,并且如何根据不同的要求配置SSL一 下载  1,从openssl.org下载openssl到/usr/local  2.从...
  • sagely
  • sagely
  • 2005年04月29日 13:13
  • 7105

linux Apache设置https访问以及加载mod_ssl.so模块

1.申请证书【阿里云免费证书】 1.1登陆阿里云进入控制台 1.2左侧选择安全 下拉框选择证书服务 1.3右上角选择购买证书 选择免费 然后立即购买-支付 1.4返回证书列表页面 选择补全-填写要配...
  • slyjit
  • slyjit
  • 2017年06月16日 18:16
  • 3175

mod_ssl.so文件

  • 2014年12月27日 22:40
  • 129KB
  • 下载

linux Apache设置https访问以及加载mod_ssl.so模块以及问题解决

开始之前的话: 1.配置好服务器防火墙的443端口规则; 2.增加阿里云服务器安全组的443端口规则。 1.申请证书【阿里云免费证书】 1.1登陆阿里云进入控制台 ...
  • dmt742055597
  • dmt742055597
  • 2017年11月08日 21:50
  • 426

mod_ssl.so

  • 2013年07月28日 09:56
  • 129KB
  • 下载

WIN7解决 Wamp 开启SSL失败 modules/mod_ssl.so

wamp 开启SSL报错> ./httpd -X httpd.exe: Syntax error on line 174 of D:/wamp64/bin/apache/apache2.4.18/co...
  • default7
  • default7
  • 2016年09月09日 14:44
  • 4568

mod_ssl源码分析一

apache(httpd-2.2.14) mod_ssl源码分析一     前几天读了张中庆老师的《Apache源代码全景分析》让我受益匪浅,因为公司最近要分析Apache源代码中的mod_ss...
  • yangyangye
  • yangyangye
  • 2014年03月24日 21:37
  • 1031
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Apache2 + mod_ssl + php5 完全安装实录(1)
举报原因:
原因补充:

(最多只允许输入30个字)