环境:Fedora 12,OpenSSL 0.9.8l,httpd 2.3.5,假设,机子上没有安装openssl和httpd。
这篇日志描述了在Fedora 12上编译并安装Apache Web服务器,并打开433号端口,提供HTTPS服务。要说明的是,不用在mod_ssl的官网上再下载mod_ssl了,因为现在httpd已经把 mod_ssl做为一个模块放到它自己的源码里,只需要在配置时添加一个选项就行了。
从www.openssl.org下载openssl-0.9.8l.tar.gz到/home/MaChi/Apache_OpenSSL/
从www.apache.org下载httpd-2.3.5-alpha.tar.bz2到/home/MaChi/Apache_OpenSSL/
解压:
cd /home/MaChi/Apache_OpenSSL/
tar xvf openssl-0.9.8l.tar.gz
tar xvf httpd-2.3.5-alpha.tar.bz2
安装OpenSSL:
cd openssl-0.9.8l
如果在配置时没有指定prefix,则openssl会安装到/usr/local/ssl/目录下,现在,我要把openssl安装到/usr/local/目录下:
./config --prefix=/usr/local --openssldir=/usr/local/openssl
make
make test
sudo make install
openssl version
输出:OpenSSL 0.9.8l 5 Nov 2009
OpenSSL安装完毕。
安装Apache:
cd ..
cd httpd-2.3.5-alpha
svn co http://svn.apache.org/repos/asf/apr/apr/trunk srclib/apr
cd srclib/apr/
./buildconf
./configure
cd ../../
./configure --prefix=/usr/local/apache2 --enable-ssl=static --with-ssl=/usr/local
make
sudo make install
Apache安装完毕。
sudo /usr/local/apache2/bin/apachectl start
现在,就可以通过在firefox的地址栏中输入127.0.0.1,就可以看到Apache的默认页面。
sudo /usr/local/apache2/bin/apachectl stop
现在,Apache的Web服务器就停止了。
配置Apache SSL:
因为在编译时,已经将mod_ssl静态编译到httpd中,所以现在只需要把ssl的配置文件添加到httpd的配置里就可以了。
修改文件/usr/local/apache2/conf/httpd.conf,在文件最后添加一句"Include /usr/local/apache2/conf/extra/httpd-ssl.conf"
sudo /usr/local/apache2/bin/apachectl start
我这里会出现:
Syntax error on line 56 of /usr/local/apache2/conf/extra/httpd-ssl.conf:
SSLSessionCache: 'shmcb' session cache not supported (known names: )
修改文件/usr/local/apache/conf/extra/httpd-ssl.conf(如果没有出上面的错,就不用改了),
将文件第56行:SSLSessionCache "shmcb:/usr/local/apache2/logs/ssl_scache(512000)"
改为:SSLSessionCache nonenotnull
sudo /usr/local/apache2/bin/apachectl start
此时,又会出错:
Syntax error on line 95 of /usr/local/apache2/conf/extra/httpd-ssl.conf:
SSLCertificateFile: file '/usr/local/apache2/conf/server.crt' does not exist or is empty
这是因为在启动https时,需要一个证书,而我们还没有为这个网站生成一个证书,为了测试,下面将用openssl生成一个自签名的证书:
cd /usr/local/apache2/conf/
sudo openssl req -new -x509 -nodes -out server.crt -keyout server.key
下面openssl会要求为证书输入一些相关信息:
Country Name (2 letter code) [XX]:CH
State or Province Name (full name) []:Shannxi
Locality Name (eg, city) [Default City]:Baoji
Organization Name (eg, company) [Default Company Ltd]:XD
Organizational Unit Name (eg, section) []:CS
Common Name (eg, your name or your server's hostname) []:MaChi
Email Address []:machi1271@126.com
这时,在目录/usr/local/apache2/conf/下生成了两个文件:server.key,server.crt
在firefox的地址栏输入:https://127.0.0.1,就可以通过SSL访问我们自己的网站了。
当然,这些只是一些简单的配置,更多的配置可以看Apache的官方文档:http://httpd.apache.org/docs/trunk/ssl/ssl_howto.html.
配置Apache和OpenSSL
最新推荐文章于 2024-07-25 14:36:21 发布