在wamp服务器中安装SSL:httpd-ssl.conf中的错误

yquaqz18  于 2022-11-14  发布在  其他
关注(0)|答案(7)|浏览(149)

我尝试在本地主机上设置SSL,我已经执行了http://madurad.wordpress.com/2014/04/25/redirect-http-to-https-with-wamp-server/和许多其他操作,但无法成功。我在httpd-ssl. conf的语法中卡住了。当我设置

<Directory "c:/wamp/www/"> 
   Options Indexes FollowSymLinks  
   AllowOverride all 
   Require all granted 
   SSLOptions +StdEnvVars
</Directory>

我已经尝试了许多其他像

<Directory "c:/wamp/www/"> 
   SSLOptions +StdEnvVars
</Directory>

什么是问题不能得到....

z8dt9xmd

z8dt9xmd1#

如何配置WAMPServer以使用HTTPS SSL
这不是一个简单的过程。希望本教程能让SSL为您工作。但是,一旦它工作,正确配置它完全取决于您。

Additional reading for all who travel this road
好的,
我在本教程中创建了一个名为www.wamphelpers.dev的站点,因此,无论您在何处看到该名称,请将其更改为您试图保护的站点名称。
首先,我在\wamp\www\wamphelpers中创建了一个不安全的站点
\wamp\bin\apache\apache{version}\conf\extra\httpd-vhosts.conf中为该站点添加了虚拟主机

<VirtualHost *:80>
    DocumentRoot "c:/wamp/www"
    ServerName localhost
    ServerAlias localhost
    <Directory  "c:/wamp/www">
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "c:/wamp/www/wamphelpers"
    ServerName wamphelpers.dev
    ServerAlias www.wamphelpers.dev
    <Directory  "c:/wamp/www/wamphelpers">
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

已将其域名添加到C:\windows\system32\drivers\etc\hosts

  • 某些病毒检查程序会阻止对HOSTS文件的访问,因此您可能需要禁用病毒检查程序,或将其配置为暂时不阻止hosts文件 *。
127.0.0.1 wamphelpers.dev www.wamphelpers.dev
::1       wamphelpers.dev www.wamphelpers.dev

现在,从使用“以管理员身份运行”启动的命令窗口重新启动dnscache,如下所示

ipconfig /flushdns

然后在\wamp\www\wamphelpers\index.php中创建了一个简单的脚本

<?php
    echo 'Hello, this is the WAMPHELPERS.DEV site homepage';
?>

现在,要激活已定义的新虚拟主机,请编辑\wamp\bin\apache\apache{version}\conf\httpd.conf并找到以下行

# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

并删除#注解字符,如下所示

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

保存档案。
现在重新启动Apache,并确保您的简单的不安全的虚拟托管站点在继续之前正常工作。

**openssl工具包。**openssl.exe、ssleay32.dll和libeay32.dll随附并位于C:\wamp\bin\apache\apachex.y.z\bin文件夹中。这应该是创建自签名证书所需的全部内容!!
**但是:**这些在我安装的任何Apache版本上都不起作用。我总是收到这个错误消息。

其中序号根据我所在的Apache版本文件夹而变化。
如果你得到这个错误,不要担心,这是你需要做的。

安装最新版本的OPENSSL工具包

这可以通过from here获得

**注意:**不要使用V1.1版本,PHP团队还没有用这些新链接编译PHP,所以请坚持使用V1.0.?版本,直到他们这样做。

选择“Win32 OpenSSLv xxx Light”或“Win 64 OpenSSLv xxx Light”的最新版本以匹配您安装的WAMPServer版本,因为这是您所需要的全部。
这将下载一个.exe文件,您可以运行该文件来安装此工具包。
它会问下面的问题,我建议你这样回答,这样你就不会把一些东西安装到C:\windows\system32中。毕竟这是一个工具包,它经常变化。最好把这些东西分开,不要让它们成为系统全局。

一旦安装完成(安装到您在安装中指定的任何文件夹),您就应该准备好开始生成密钥和证书的过程了!

生成密钥和证书。
步骤1:生成RSA私钥

首先,我们需要为自己创建一个证书。正常的(付费的)过程是创建你的证书,然后将其传递给签名机构。这就是为什么要花钱的原因,因为他们必须这样做,应有的谨慎,以检查你是谁,你说你是谁,你将使用证书的网站是真实的和合法的。
openssl工具包用于生成RSA私钥和CSR(证书签名请求),以用于我们的证书。第一步是创建您的RSA私钥。此密钥是一个1024位RSA密钥,使用Triple-DES加密,并以PEM格式存储,因此可以作为ASCII文本读取。
使用[b]以管理员身份运行[/b]将目录更改为上面安装OpenSSL Toolkit的位置,打开命令窗口(Dos框)。在我的示例中,这是

CD c:\apps\OpenSSL-Win32\bin

制作一个文件夹的输出要放在(以保持垃圾箱文件夹整齐)我用网站

md website

现在输入以下命令:

openssl genrsa -out website\server.key 2048

这应该已经在网站文件夹中创建了一个名为server.key的文件,没有密码短语密钥,请检查它是否存在。

步骤2:生成CSR(证书签名请求)

在生成CSR的过程中,系统将提示您输入几条信息。这些是证书的X.509属性。其中一条提示是“公用名(例如,服务器FQDN或您的名称)[]:“。**请务必在此字段中填写要受SSL保护的服务器的完全限定域名。**因此,如果要保护的网站是https://www.wamphelpers.dev,则在此提示中输入www.wampheplers.dev。我使用wamphelper.dev是因为我的ServerNameServerName wamphelpers.dev
不要在问题中输入任何内容:A challenge password []:]只需按Enter键。如果您在此处输入密码短语,当您启动配置了SSL的Apache时,Apache将无法启动,并将给予以下错误消息:-

  • [错误]初始化:Win32* 不支持SSLPassPhraseDialog内置

基本上,如果你输入了一个密码,Apache每次启动时都会向你询问这个密码。这显然不会让你的生活更轻松,但主要是在Windows上,它实际上并不工作,当Apache试图询问密码时,会导致Apache崩溃,并出现上述错误。
生成CSR的命令如下:

openssl req -new -key website\server.key -out website\server.csr

Example question and answers:
Country Name (2 letter code) [AU]:GB
State or Province Name (full name) [Some-State]: Hampshire
Locality Name (eg, city) []: Portsmouth
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Wamp Helpers Ltd
Organizational Unit Name (eg, section) []: Information Technology
Common Name (e.g. server FQDN or YOUR name) []: wamphelpers.dev
Email Address []: me@wamphelpers.dev

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: ( leave blank just hit the enter key )
An optional company name []: ( leave blank just hit the enter key )

步骤3:生成自签名证书

此时,您将需要生成自签名证书,因为您不打算让CA对证书进行签名,或者您希望在CA对证书进行签名时测试新的SSL实现。

PRE - WARNING此证书将在客户端浏览器中生成一个错误,表明签名证书颁发机构未知且不受信任.这是不可避免得,因为我们自己签名证书,但信任网站当然不知道我们是谁. * 请参阅本文档后面得示例,该示例显示如何告诉您得浏览器您确实信任此证书 *

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

Example output:
Loading 'screen' into random state - done
Signature ok
subject=/C=GB/ST=Hampshire/L=Portsmouth/O=WampHelpers Ltd/OU=Information Technology/CN=www.wamphelpers.dev/emailAddress=riggsfolly@wamphelpers.dev
Getting Private key

步骤4:安装私钥与证书

在您正在使用的Apache版本下创建这两个目录。

md c:\wamp\bin\apache\apachex.y.z\conf\ssl.key
md c:\wamp\bin\apache\apachex.y.z\conf\ssl.crt

并将我们刚刚生成的文件复制到它们中,如下所示:

copy website\server.crt c:\wamp\bin\apache\apachex.y.z\conf\ssl.crt
copy website\server.key c:\wamp\bin\apache\apachex.y.z\conf\ssl.key

步骤5:配置Apache以激活SSL

编辑httpd.conf,检查此行是否未注解

LoadModule authn_socache_module modules/mod_authn_socache.so

LoadModule ssl_module modules/mod_ssl.so

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

也从此行中删除注解“#”

Include conf/extra/httpd-ssl.conf

然后将这条线移到这个区块之后....像这样

<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf

步骤6:配置PHP以激活SSL

编辑你的php.ini(使用wampmanager菜单,这样你就可以编辑正确的)
删除注解';'从这行

extension=php_openssl.dll

步骤7:配置安全站点虚拟主机

是的,对于所有你的虚拟主机说,现在你不能避免的过程。
编辑\wamp\bin\apache\apachex.y.z\conf\extra\httpd-ssl.conf
这个文件是由Apache发布的,包含一些默认的文件位置。我们可以保留这个文件的大部分内容,但是我们需要在这里配置虚拟主机,以匹配我们的实际站点位置和一些其他的东西:
找到这些线

DocumentRoot "c:/Apache2/htdocs"
ServerName www.example.com:443
ServerAdmin admin@example.com
ErrorLog "c:/Apache2/logs/error.log"
TransferLog "c:/Apache2/logs/access.log"


并将其更改为

DocumentRoot "c:/wamp/www/wamphelpers"
ServerName wamphelpers.dev:443
ErrorLog "c:/wamp/logs/ssl_error.log"
TransferLog "c:/wamp/logs/ssl_access.log"

查找

SSLCertificateFile "c:/Apache2/conf/server.crt"

且换到了

SSLCertificateFile "c:/wamp/bin/apache/apachex.y.x/conf/ssl.crt/server.crt"

存储器
查找

SSLCertificateKeyFile "c:/Apache2/conf/server.key"

且换到了

SSLCertificateKeyFile "c:/wamp/bin/apache/apachex.y.x/conf/ssl.key/server.key"

查找

<Directory "c:/Apache2/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>

且换到了

  • Apache 2.2语法 *
<Directory "c:/wamp/www/wamphelpers">
    SSLOptions +StdEnvVars
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1 localhost ::1
</Directory>
  • Apache 2.4语法 *
<Directory "c:/wamp/www/wamphelpers">
    SSLOptions +StdEnvVars
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require local
</Directory>

查找

SSLSessionCache        "shmcb:c:/Apache2/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300

并将其更改为

SSLSessionCache        "shmcb:c:/wamp/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300


查找

CustomLog "c:/Apache24/logs/ssl_request.log" \
      "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"


且换到了

CustomLog "c:/wamp/logs/ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

基本上查看conf文件和任何未注解掉但引用了文件或文件夹的命令,应将其更改为引用WAMPServer文件夹结构而不是“C:/Apache 2...”。
现在,确保我们更改的所有文件都已保存,然后使用wampmanager菜单重新启动Apache。
首先测试未受保护的站点是否仍在工作。
然后尝试使用您的新受保护的网站添加'https://'到前面的域名,即https://www.wamphelpers.dev没有单引号当然.

如果Apache没有重新启动您可能拼写错误。请按如下方式测试配置:-

开启指令视窗

cd \wamp\bin\apache\apachex.y.z\bin
httpd -t

显示器
这将解析所有的配置文件,并给予一个文件名和一个发现错误的行号。
请修正后再试一次。
第一次访问你的网站会生成一个类似这样的消息页面。这是用FireFox的,其他的会稍有不同,但是概念是一样的。

这是因为您的证书不是由受信任的颁发机构签署的,不要惊慌,这是应该发生的。
点击“我了解风险”,这将显示一个按钮,上面写着“添加例外”,在检查证书站点详细信息确实是您的之后,按下“添加例外”按钮,除非您清除例外列表,否则您将不会再看到此消息。

重要提示从Apache v2.2.12和OpenSSL v0.9.8j开始,现在每个Apache示例可以保护多个站点。本教程不涉及该过程。请参阅此处了解更多详细信息:

Here
and Here
and Here

  • 就像我在上面说的,现在您需要对SSL配置中的所有可用选项进行一些研究,并使其按照您的意愿工作,而不是使用默认设置。*
3phpmpom

3phpmpom2#

需要激活wampserver 2.5中文件***httpd.conf***中的模块***LoadModule socache_shmcb_module modules/mod_socache_shmcb.so***。如果没有激活,apache将抛出下一条消息:
AH 00526:在C的第75行出现语法错误:SSL会话缓存:不支持“shmcb”会话缓存(已知名称:)。也许您需要加载相应的socache模块(mod_socache_shmcb?)。

epfja78i

epfja78i3#

如果出现类似以下的错误:
无法将modules/mod_ssl. so加载到服务器:找不到指定的模块。
1.您可能想尝试在wamp文件夹中搜索libeay32.dll,您可能在{wamp文件夹}/bin/php/php{版本7}/中找到它
1.复制libeay32.dll和ssleay32.dll并将它们粘贴到{wamp文件夹}/bin/apache/apache{版本2.x}/bin/ AND {wamp文件夹}/bin/php/php{版本5.x}中。请确保备份您放置的所有内容。
1.运行httpd -t并测试语法
注意:我相信这是由于wamp 3.0.6的apache openssl部分的错误。幸运的是,在php7文件夹中,这些dll与apache和php5兼容。

ukqbszuj

ukqbszuj4#

@里格斯·霍利:在您的教程中的一些小错误/打字错误/添加。下面是与Windows 7 SP1 64位上的WAMPServer 2.5 64位(Apache 2.4.9和PHP 5.5.12)结合使用:
-httpd-vhosts.conf位于额外的/httpd-vhosts.conf中

  • 当你试图编辑你的主机文件时,一定要禁用所有的病毒扫描程序。有些病毒扫描程序会阻止对主机文件的访问。
  • 在编辑主机文件时,请确保以管理员身份打开文本编辑器,否则在尝试保存时会出现错误。
  • 不要忘记删除主机行开头的#(如果有)
  • 如果您使用WAMPServer 64位,请确保下载OpenSSL的64位版本
  • 步骤openssl genrsa -out website\server.key 2048创建了一个服务器.key文件,而不是一个私有密钥.pem!
  • 文件\wamp\bin\apache\apachex.y.z\conf\httpd-ssl.conf位于\wamp\bin\apache\apachex.y.z\conf\extra\httpd-ssl.conf(可能这取决于WAMP服务器版本)
  • 我不得不使用不同的端口http(80-〉8080)和https(443-〉444)作为这些端口使用的地方,我认为Skype。当你使用不同的端口,一定要使用这些地方,你看到80或443在本教程
  • 我还必须启用socache_shmcb_module。“httpd -t”也提到了这一点。
gcuhipw9

gcuhipw95#

@里格斯·弗利:带有密钥的自签名证书可以很容易地生成,例如这里的... http://www.selfsignedcertificate.com/,所以我可以从第4步开始教程(我还运行了standard:80虚拟服务器)。

不管怎么说,在默认的WAMP安装中已经启用了一些提到的东西(我猜它会随着版本的变化而变化),但是其余的帮助了我很多。实际上有一件事是缺失的...我还不得不取消注解“httpd.conf”中的下面一行

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
qcuzuvrc

qcuzuvrc6#

如果出现错误:
无法将modules/mod_ssl. so加载到服务器:操作系统无法运行%1
然后您必须:
1.在此处安装Win32 OpenSSL http://slproweb.com/products/Win32OpenSSL.html
1.将libeay32.dll和ssleay32.dll复制/粘贴到您的wamp php bin文件夹中(C:\wamp64\bin\php\php5.6.19)
1.重新启动apache
注:在Wamp服务器3上测试

wvmv3b1j

wvmv3b1j7#

众人面前:
1).关闭WAMP并继续执行C:\wamp\scripts\config.inc.php,从数组libeay32.dllssleay32.dll、第133行和第139行移动
2).从官方网站安装OpenSSL,注意你的操作系统版本x64或没有。
命令提示符:
3). cd C:\wamp\bin\apache\apache2.4.23\bin
4). openssl req -new > localhost.csr
5). openssl rsa -in privkey.pem -out localhost.key
6). openssl x509 -in localhost.csr -out localhost.crt -req -signkey localhost.key -days 365 -sha256 -extfile v3.ext

**更新:**从Chrome 58开始,我们需要提供Subject Alternative Name。此名称可以从扩展文件v3.ext中获得:

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = 127.0.0.1
DNS.2 = localhost

在公用名中插入“localhost”非常重要
7).获取localhost.key和localhost.crt并将它们放到C:\wamp\bin\apache\apache2.4.23\conf\key中(当然,在创建相应的目录之前)
配置方式:
8).在C:\wamp\bin\apache\apache2.4.23\bin\php.ini中使能,并且
一个月一个月一个月一个月一个月
9).继续执行C:\wamp\bin\apache\apache2.4.23\conf\httpd.conf并取消注解:
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
Include conf/extra/httpd-vhosts.conf

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

10).继续执行C:\wamp\bin\apache\apache2.4.23\conf\extra\httpd-ssl.conf
并进行更改:
SSLSessionCache "shmcb:c:/wamp/bin/apache/apache2.4.23/logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300
VirtualHost _default_:443
DocumentRoot "c:/wamp/www/"
ServerName localhost:443

ErrorLog "c:/wamp/bin/apache/apache2.4.23/logs/ssl_error.log"

,(如果不存在则创建文件)
TransferLog "c:/wamp/bin/apache/apache2.4.23/logs/access.log"
SSLCertificateFile "c:/wamp/bin/apache/apache2.4.23/conf/key/localhost.crt"
SSLCertificateKeyFile "c:/wamp/bin/apache/apache2.4.23/conf/key/localhost.key"

<Directory "c:/wamp/www/">
    SSLOptions +StdEnvVars
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require local
</Directory>

CustomLog "c:/wamp/bin/apache/apache2.4.23/logs/ssl_request.log"

证件办理:
11).按Win+R并插入“certmgr. msc”,将servercert.crt导入“受信任的根证书颁发机构”
12).在命令提示符中检查服务器“httpd -t”是否应为“语法正常”
13).启动Wamp并继续链接https://localhost
我希望这会有帮助

**注意:**请阅读有关Mozilla行为的文章:

https://blog.mozilla.org/security/2014/09/23/phasing-out-certificates-with-sha-1-based-signature-algorithms/

相关问题