最近由于工作内容的要求,需要加入https,翻查很多e文资料,恶补ssl基本知识,基本知识了解一番后,开始动手创建证书,以为没有什么大问题,没想到一动手apache就出现错误:SSLPassPhraseDialog builtin is not supported on Win32。Win32平台不支持加密密钥,启动Apache时就产生了上述错误,如何解决呢?
在解决问题之前,先看看产生问题的环境,本人研究https环境是:
1、httpd-2.2.15-win32-x86-openssl-0.9.8m-r2.msi
2、windows2003
3、Openssl-windows-0.9.8k out32dll
基于ssl基础知识,网上很多,这里就不多说了,自己去查阅吧。
问题的产生过程(自签证书):openssl req -new -x509 -days 360 -keyout server.key -out server.crt -subj /CN=testby -config D:/soft/apache/Apache2.2/conf/openssl.cnf
在执行过程中要求输入密码,输入密码后,没有任何问题,出现server.key 及server.crt文件,把两个文件移动到conf文件夹下,
运行apache httpd -k start 发现,不能启动,查看Logs发现:
SSLPassPhraseDialog builtin is not supported on Win32 (key file D:/soft/apache/Apache2.2/conf/server.key)。
原来Win32平台不支持加密密钥,晕了。。。,客户非得使用windows作为服务器,咋办呢?
问题解决思路:既然不支持加密,就把server.key的文件解密,同时注释掉httpd-ssl.conf文件中SSLPassPhraseDialog 。
1、复制server.key 为server.key.org
2、对server.key.org解密 openssl rsa -in server.key.org -out server.key s输入密码后解密成功
3、打开httpd-ssl.conf 找到SSLPassPhraseDialog builtin 在前面加上#
好了,重新httpd -k start 成功运行apche,问题解决。
参考资料:
http://www.symantec.com/connect/search?filters=type%3Aarticle%20tid%3A691&newsearch=1