在 WAMP 中启用 OpenSSL
Posted
技术标签:
【中文标题】在 WAMP 中启用 OpenSSL【英文标题】:Enabling OpenSSL in WAMP 【发布时间】:2013-06-25 15:23:47 【问题描述】:我今天在我的 Windows 7 计算机上安装了最新的 WAMP(来自 wampserver.com)。
我已在php > PHP Extensions > php_openssl
中启用 SSL
还有Apache > Apache Modules > open_ssl
但是当我尝试使用 https:// 访问任何内容时,我得到“问题加载页面”。 apache_error.log 说
[Thu Jun 27 16:25:08.622056 2013] [ssl:warn] [pid 4812:tid 356] AH01882: Init: this version of mod_ssl was compiled against a newer library (OpenSSL 1.0.1e 11 Feb 2013, version currently loaded is OpenSSL 1.0.1d 5 Feb 2013) - may result in undefined or erroneous behavior
[Thu Jun 27 16:25:08.973076 2013] [ssl:warn] [pid 4812:tid 356] AH01882: Init: this version of mod_ssl was compiled against a newer library (OpenSSL 1.0.1e 11 Feb 2013, version currently loaded is OpenSSL 1.0.1d 5 Feb 2013) - may result in undefined or erroneous behavior
[Thu Jun 27 16:25:09.356098 2013] [ssl:warn] [pid 4812:tid 356] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
[Thu Jun 27 16:25:09.365099 2013] [mpm_winnt:notice] [pid 4812:tid 356] AH00455: Apache/2.4.4 (Win64) OpenSSL/1.0.1d PHP/5.4.12 configured -- resuming normal operations
[Thu Jun 27 16:25:09.365099 2013] [mpm_winnt:notice] [pid 4812:tid 356] AH00456: Server built: Feb 22 2013 22:08:37
[Thu Jun 27 16:25:09.365099 2013] [core:notice] [pid 4812:tid 356] AH00094: Command line: 'c:\\wamp\\bin\\apache\\apache2.4.4\\bin\\httpd.exe -d C:/wamp/bin/apache/Apache2.4.4'
[Thu Jun 27 16:25:09.366099 2013] [mpm_winnt:notice] [pid 4812:tid 356] AH00418: Parent: Created child process 3452
[Thu Jun 27 16:25:09.664116 2013] [ssl:warn] [pid 3452:tid 248] AH01882: Init: this version of mod_ssl was compiled against a newer library (OpenSSL 1.0.1e 11 Feb 2013, version currently loaded is OpenSSL 1.0.1d 5 Feb 2013) - may result in undefined or erroneous behavior
[Thu Jun 27 16:25:09.954132 2013] [ssl:warn] [pid 3452:tid 248] AH01882: Init: this version of mod_ssl was compiled against a newer library (OpenSSL 1.0.1e 11 Feb 2013, version currently loaded is OpenSSL 1.0.1d 5 Feb 2013) - may result in undefined or erroneous behavior
[Thu Jun 27 16:25:10.327154 2013] [ssl:warn] [pid 3452:tid 248] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
[Thu Jun 27 16:25:10.339154 2013] [mpm_winnt:notice] [pid 3452:tid 248] AH00354: Child: Starting 150 worker threads.
【问题讨论】:
How do I allow HTTPS for Apache on localhost?的可能重复 【参考方案1】:php.ini 的路径 [如果你想要 composer 的话] 是 C:\wamp\bin\php\php5.4.x\php.ini 。如果您通过 Wamp 托盘图标导航,此文件与您拥有的文件不同
去那里删除@milesstewart88 所说的分号
【讨论】:
如果您在使用 Composer 时遇到此问题,那么您可以这样做。【参考方案2】:只需在 php.ini 文件中取消注释您的 openssl 扩展。
例如。 ;extension=php_openssl.dll
去掉分号,变成这样。
extension=php_openssl.dll
应该可以;它对我有用。
【讨论】:
谢谢@milestewart88。它解决了这个问题。【参考方案3】:带有 apache 2.4.4 的 Wampserver 发布时带有错误的 openssl 文件。所有要做的就是:从这里下载并安装 1.0.1e openssl:http://slproweb.com/products/Win32OpenSSL.html
然后在安装目录下找到这些文件:
bin\openssl.cfg
bin\libeay32.dll
bin\ssleay32.dll
bin\openssl.exe
停止 apache 服务器。 首先,保存它们的备份。然后在你的 apache 目录中覆盖这些文件:
conf\openssl.cnf->这里重命名cfg
bin\libeay32.dll
bin\ssleay32.dll
bin\openssl.exe
重启服务器。解决了。
【讨论】:
我不知道如何或为什么,但这刚刚让我的服务器崩溃了。 @George D 的建议对我有用。不幸的是,这并没有。我的服务器并没有崩溃 非常适合我。 1.0.1e 不再存在!【参考方案4】:在带有 Apache 2.4.4 的 Wampserver 上,这对我有用:
假设您已经使用 SSL 密钥和证书创建了一个目录,例如:c:/wamp/OpenSSL
在 httpd.conf 中取消注释:
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule ssl_module modules/mod_ssl.so
# Secure (SSL/TLS) connections
<IfModule ssl_module>
Include conf/extra/httpd-ssl.conf
</IfModule>
在 httpd-ssl.conf 中编辑:
SSLSessionCache "shmcb:c:/wamp/OpenSSL/logs/ssl_scache(512000)"
<VirtualHost _default_:443>
DocumentRoot "c:/wamp/www"
ServerName localhost:443
ErrorLog "c:/wamp/logs/error.log"
TransferLog "c:/wamp/logs/access.log"
SSLCertificateFile "c:/wamp/OpenSSL/certs/server.crt"
SSLCertificateKeyFile "c:/wamp/OpenSSL/certs/server.key"
<Directory "c:/wamp/www">
SSLOptions +StdEnvVars
</Directory>
CustomLog "c:/wamp/logs/ssl_request.log" \
"%t %h %SSL_PROTOCOLx %SSL_CIPHERx \"%r\" %b"
</VirtualHost>
在 php.ini 中取消注释:extension=php_openssl.dll
【讨论】:
【参考方案5】:看看我是怎么做到的..
uncomment below line from <WEBroot>/bin/apache/Apache2.x/conf/httpd.conf
LoadModule ssl_module modules/mod_ssl.so
&
Include conf/extra/httpd-ssl.conf
将您的证书和密钥放在单独的文件夹中,例如“wwwssl”
AND GOT TO <WEBroot>/bin/apache/Apache2.x/conf/extra/httpd-ssl.conf
为所需的服务器创建一个虚拟主机,例如:下面
<VirtualHost _default_:443>
DocumentRoot "<WEBroot>/www/"
ServerName localhost
SSLEngine on
SSLCertificateFile "<WEBroot>/wwwssl/webserver.cert"
SSLCertificateKeyFile "<WEBroot>/wwwssl/webserver.key"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
</VirtualHost>
【讨论】:
【参考方案6】:就像milesstewart88 所说的那样-在php.ini 文件中取消注释行extension=php_openssl.dll。
从 wamp 菜单中执行此操作是行不通的 - 这可能会误导真正的问题。
【讨论】:
以上是关于在 WAMP 中启用 OpenSSL的主要内容,如果未能解决你的问题,请参考以下文章
如何在 WAMP 服务器 (v2.5) 中启用 https (localhost) url? [复制]
如何在 WAMP Server 3 的虚拟主机中启用目录列表