集成openssl modssl的Apacche
集成openssl modssl的Apacche
编译一个集成openssl modssl的Apache(WIN32)服务器平台
网上很多介绍在LINUX下搭建该平台的,基于WIN32的很少且不全面,就把自己的经验与大家分享,如果你还在使用Perl写CGI?。
1、准备工作
1、安装 Microsoft Visual C++ 6.0 ,用迅雷搜一下,有很多下载地址。
2、安装 ActivePerl-5.6.1.638-MSWin32-x86.msi ,下载地址: http://download.activestate.com/ActivePerl/Windows/5.6/ActivePerl-5.6.1.638-MSWin32-x86.msi
3、下载 apache_1.3.37.tar.gz 下载地址:http://httpd.apache.org/download.cgi(选择Unix Source)
4、下载 openssl-0.9.8d.tar.gz 下载地址: http://www.openssl.org/source/
5、下载 mod_ssl-2.8.28-1.3.37.tar.gz 下载地址: http://www.modssl.org/source/
6、下载 awk95.exe 保存到X:\Program Files\Microsoft Visual Studio\VC98\Bin 下载地址: http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe
7、下载 Net_SSLeay.pm-1.30.tar.gz 和 Crypt-SSLeay-0.51.tar.gz 下载地址: http://search.cpan.org
2、开始编译
1、解压缩下载文件到
X:\ssl\apache_1.3.37
X:\ssl\openssl-0.9.8d
X:\ssl\mod_ssl-2.8.28-1.3.37
X:\ssl\Crypt-SSLeay-0.51
X:\ssl\Net_SSLeay.pm-1.30
2、打开CMD命令窗口,进入到X:\ssl
3、编译 openssl
X:\ssl>cd openssl-0.9.8d
X:\ssl\openssl-0.9.8d>perl Configure VC-WIN32 --prefix=X:/openssl
X:\ssl\openssl-0.9.8d>ms\do_ms
X:\ssl\openssl-0.9.8d>nmake -f ms\ntdll.mak install
将openssl\bin目录下libeay32.dll、ssleay32.dll复制到X:\WINDOWS\system32
4、集成mod_ssl-2.8.28-1.3.37到Apache中
X:\ssl\openssl-0.9.8d>cd..
X:\ssl>cd mod_ssl-2.8.28-1.3.37
X:\ssl\mod_ssl-2.8.28-1.3.37>configure.bat --with-apache=X:\ssl\apache_1.3.37 --with-ssl=X:\openssl
3、编译 Apache
X:\ssl\mod_ssl-2.8.28-1.3.37>cd..
X:\ssl>cd apache_1.3.37\src
X:\ssl\apache_1.3.37\src>nmake /f Makefile.win installr INSTDIR=X:\Apache
4、安装 Apache
X:\ssl\apache_1.3.37\src>cd..
X:\ssl\apache_1.3.37>cd..
X:\ssl>cd..
X:>cd Apache
X:\Apache>Apache -k install
X:\Apache>Apache -k start
你将会看到Apache/1.3.37 (Win32) mod_ssl/2.8.28 OpenSSL/0.9.8d running...
到此一个集成openssl modssl的Apache(WIN32)服务器平台编译安装成功。也可以到"控制面板->管理工具->服务"来开启或停止服务。
5、安装 Crypt-SSLeay
X:\Apache>cd..
X:>cd ssl\Crypt-SSLeay-0.51
X:\ssl\Crypt-SSLeay-0.51>perl Makefile.pl
X:\ssl\Crypt-SSLeay-0.51>namke
X:\ssl\Crypt-SSLeay-0.51>nmake test
X:\ssl\Crypt-SSLeay-0.51>nmake install
6、安装 Net_SSLeay
X:\ssl\Crypt-SSLeay-0.51>cd..
X:\ssl>cd Net_SSLeay.pm-1.30
X:\ssl\Net_SSLeay.pm-1.30>perl Makefile.pl -windows X:\openssl
X:\ssl\Net_SSLeay.pm-1.30>namke
X:\ssl\Net_SSLeay.pm-1.30>nmake test
X:\ssl\Net_SSLeay.pm-1.30>nmake install
3、制作证书
1、先建立一个 CA 的证书,
首先为 CA 创建一个 RSA 私用密钥,
X:\openssl>openssl genrsa -des3 -out ca.key 1024
系统提示输入 PEM pass phrase,也就是密码,输入后牢记它。
生成 ca.key 文件。
2、生成 ca.crt 文件
X:\openssl>openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
然后需要输入下列信息:
Country Name: cn 两个字母的国家代号
State or Province Name: xxx 省份名称
Locality Name: xxxx 城市名称
Organization Name: xxxx 公司名称
Organizational Unit Name: xxxx 部门名称
Common Name: xxxxx 你的姓名
Email Address: xxx@xxx.net Email地址
3、首先为你的 Apache 创建一个 RSA 私用密钥:
X:\openssl>openssl genrsa -des3 -out server.key 1024
这里也要设定pass phrase。
4、用 server.key 生成证书签署请求 CSR.
X:\openssl>openssl req -new -key server.key -out server.csr
这里也要输入一些信息,和 2 中的内容类似。
4、编辑修改httpd.conf
在httpd.conf添加以下内容
LoadModule ssl_module modules/mod_ssl.so
AddModule mod_ssl.c
Listen 443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
SSLPassPhraseDialog builtin
SSLSessionCache dbm:logs/ssl-scache.log
SSLSessionCacheTimeout 300
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
<VirtualHost _default_:443>
ErrorLog logs/error.log
TransferLog logs/access.log
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile conf/ssl/server.crt
SSLCertificateKeyFile conf/ssl/server.key
<Files ~ "\.(pl|cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "cgi-bin">
SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
重新启动Apache,输入[color=red]https[/color]://127.0.0.1/env.pl