在 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.4Wampserver 上,这对我有用: 假设您已经使用 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的主要内容,如果未能解决你的问题,请参考以下文章

启用 OPCache 在 WAMP 中不起作用

如何在 WAMP 服务器 (v2.5) 中启用 https (localhost) url? [复制]

在 wamp 中为 php 启用 opcache

如何在 WAMP Server 3 的虚拟主机中启用目录列表

启用 httpd-vhosts.conf 后 WAMP 服务器未运行

启用 WAMP/phpmyadmin 设计器/关系视图