您的位置:首页 > 运维架构 > Apache

wamp下 配置 apache 的ssl

2015-10-27 15:58 661 查看
wamp开启SSL

解决wamp5_1.7.4中APACHE启动问题

1.#修改httpd.conf文件

LoadModule ssl_module modules/mod_ssl.so

Include conf/extra/httpd-ssl.conf

#去掉上面两行前的"#"

2.#修改conf/extra/httpd-ssl.conf

SSLCertificateFile "D:/wamp/Apache2/bin/server.crt"

SSLCertificateKeyFile "D:/wamp/Apache2/bin/server.key"

3.#修改为你生成证书的文件位置

DocumentRoot "E:/www" #修改 DocumentRoot的值与httpd.conf文件的DocumentRoot保持一致.

4.#解决APACHE无法启动

68:SSLMutex "file:D:/ProgramFiles2003/wamp/wamp/Apache2/logs/ssl_mutex"

#修改为68: SSLMutex default

5.#把httpd-ssl.conf文件中所的apache的路径替换为你的APACHE的路径

#到此配置文件修改完毕

二,证书生成的方法

#命令行中进入apache/bin目录下执行如下:

openssl req -config ../conf/openssl.cnf -new -out server.csr -keyout server.pem
提示输入一系列的参数,

......

Country Name (2 letter code) [AU]:

State or Province Name (full name) [Some-State]:

Locality Name (eg, city) []:

Organization Name (eg, company) [Internet Widgits Pty Ltd]:

Organizational Unit Name (eg, section) []:

Common Name (eg, YOUR name) []:

Email Address []:

.....

注:Common Name必须和httpd.conf中server name必须一致,否则apache不能启动

启动apache时错误提示为:RSA server certificate CommonName (CN) `Koda' does NOT match server name!?

#签发证书

openssl rsa -in server.pem -out server.key

#生成密钥文件

openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365

#生成证书文件

把 server.key,server.crt copy到conf文件夹下

补充:

重命名server.key为server.key.org

运行命令 >openssl rsa -in server.key.org -out server.key

将产生的new key替换到原来的位置。

编辑httpd-ssl.conf,把 #SSLPassPhraseDialog builtin注释掉。

以上签署证书仅仅做测试用,真正运行的时候,应该将CSR发送到一个CA返回真正的用书.网上有些文档描述生成证书文件的过程比较繁琐,就是因为

他们自己建立了一个CA中心证书,然后再签署server.csr.

用openssl x509 -noout -text -in server.crt可以查看证书的内容。证书实际上包含了Public Key.

3. 配置httpd.conf.

引用

在conf目录下的ssl.conf文件是关于ssl的配置,是httpd.conf的一部分。

找到一个443的虚拟主机配置项,如下:

<VirtualHost _default_:443>

SSLEngine On

SSLCertificateFile conf/ssl.crt/server.crt

SSLCertificateKeyFile conf/ssl.key/server.key

#SSLCertificateChainFile conf/ssl.crt/ca.crt // 暂未启用

#......

DocumentRoot "C:/wamp/www" //网站目录

ServerName www.my.com:443

</VirtualHost>

1). 看SSLCertificateFile,SSLCertificateKeyFile两个配置项,所以应该在conf下建立两个子目录ssl.crt, ssl.key,然后把签署过的证书文件(.crt)和私钥文件(.key)放在相应的目录

2). 看DocumentRoot,ServerName配置项,ServerName修改为任意你想要得域名,注意:前面生成.csr时输入的Common Name必须于这里的ServerName项一致。

这样启动apache后,访问https://www.my.com将访问C:/programs/Apache2/htdocs目录下的内容。

但是如果你想保留其他目录的访问仍然是http,那么你应该把

<VirtualHost _default_:443> 也改为 <VirtualHost www.my.com:443>

此时,即便ServerName是任意的,系统仍然正常运行,仅仅Apache log提示"does NOT match server name"

重新启动APACHE

OK,恭喜你可以正常使用HTTPS来访问你的站点了.

参考文献:

http://my.oschina.net/xpbug/blog/197454

http://www.jb51.net/article/23973.htm

(以下没有验证,因为Apache自带了 openssl)

Windows 下Perl安装与配置

配置过程中需要生成一些mak文件,这些生成代码用perl脚本生成,所以要安装一个ActivePerl.

下载ActivePerl 网址: http://www.activestate.com/activeperl/downloads
安装好之后,要去系统环境变量中配置,在path中加入 %perl安装目录%/bin;

Windows 下openssl安装与配置

1、进入解压目录。

>cd C:\openssl-0.9.8k

2、运行Configure。

>perl Configure VC-WIN32

如不成功会有明显提示。

3、创建Makefile文件。

>ms\do_ms

推荐使用这种方式,另外两种方式 如果使用也必须保证本机有编译器才能使用。

:ms\do_masm (默认vc 自带的编译器;也也以自己下载安装)

:ms\do_nasm (需要自己下载)

4、配置VC环境变量。

>cd C:\Program Files\Microsoft Visual Studio\VC98\Bin

>vcvars32.bat

(注:如果执行出现error:Cannot determine the location of the vs common tools folder. 直接用管理员身份运行 vcvars32.bat文件即可)

5、编译动态链接库。

>cd C:\openssl-0.9.8k

>nmake -f ms\ntdll.mak

可能会缺少“ml.exe”,可下载masm并把其中的ml.exe拷贝至C:\Program Files\Microsoft Visual Studio\VC98\Bin下即可。

运行 nmake -f ms\ntdll.mak test.检查上一部编译是否成功。正常的话会执行编译后的测试程序

至此OpenSSL在windows下编译完成,编译得到的dll和lib文件位置:静态库libeay32.lib和ssleay32.lib位于out32文件夹下,动态库libeay32.dll,libeay32.lib,ssleay32.dll,ssleay32.lib位于out32dll文件夹下。

6、为VC添加头文件和静态链接库路径。

ToolsàOptionsàDirectores,在Include files中增加C:\openssl-0.9.8k \inc32目录;在Libray files中增加C:\openssl-0.9.8k\out32dll。

7、编写OpenSSL程序,可参考C:\openssl-0.9.8k\demos

(1)包含相应头文件

#include <openssl/***.h>

(2) 添加静态链接库

#pragma comment(lib, "libeay32.lib")

#pragma comment(lib, "ssleay32.lib")

或ProjectàSettingsàLinkàObject\library modules填写libeay32.lib ssleay32.lib。

(3)将动态链接库ssleay32.dll, libeay32.dll复制到C:\WINDOWS\system32或Debug目录下,确保动态链接库在正确的路径。

可能遇到的问题:

1、NMAKE : fatal error U1077: 'ml' : return code '0x1'

解决办法:在环境变量PATH中添加路径C:\masm32\bin,并按照参考资料3修改ml.exe文件。

2、NMAKE : fatal error U1077: 'cl' : return code '0x2'

解决办法:去掉ipv6(命令行中执行perl Configure VC-WIN32 -DOPENSSL_USE_IPV6=0)

3、fatal error LNK1103: debugging information corrupt; recompile module

解决办法:去掉ms文件夹下对应文件nt.mak或ntdll.mak文件中/debug选项
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: