如何配置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从推出了采用 '以管理员身份运行'
net stop dnscache
net start dnscache
然后创造了\ 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.yz \ bin文件夹中 这应该是您需要创建自签名证书 !!
但是:这些在我安装的任何Apache版本上都不适用。 我总是收到此错误消息。
凡改变因Apache的版本文件夹中的序号我在。
如果你得到这个错误不要担心,这是你需要做什么。
安装最新版本的OpenSSL工具包
这可以得到from here
注:不要使用V1.1版本的是,PHP开发小组尚未编译PHP这些新的联系,所以坚持V1.0。?版本直到他们完成。
选择最新版本的'Win32 OpenSSLv xxx Light'或'Win64 OpenSSLv xxx Light'以匹配您安装的WAMPServer版本,因为这是您所需要的。
这将下载的可以运行安装此工具包的.exe文件。
它会问以下问题,我建议你回答像这样所以你不要最终安装的东西到C:\ Windows \ System32下。因为这是一个工具包,它经常变化很合理。最好保持这些东西独立,不要让它们成为全球系统。
一旦安装(取其文件夹,您在安装指定的),你应该准备好开始生成密钥和证书的过程!
生成密钥和证书。
第1步:生成RSA私钥
首先,我们需要创建自己的证书。 正常(付费)过程是创建您的证书,然后将其传递给签名机构。 这就是为什么它需要花费金钱,因为他们必须这样做,以确保您是谁,并且您将使用该证书的网站是真实且合法的。
openssl工具包用于生成用于证书的RSA私钥和CSR(证书签名请求)。 第一步是创建您的RSA私钥。 这个密钥是一个1024位的RSA密钥,它使用Triple-DES进行加密并以PEM格式存储,因此它可以作为ASCII文本读取。
使用[b]以管理员身份运行[/ b]打开命令窗口(Dos框) 将目录更改为上面安装OpenSSL Toolkit的位置。 在我而言,这是
CD c:\apps\OpenSSL-Win32\bin
做一个文件夹被放在输出(保持bin文件夹整齐),我用网站
md website
现在,输入以下命令:
openssl genrsa -out website\server.key 2048
这应该已经在名为server.key的网站文件夹中创建了一个文件,没有密码短语,请检查它是否存在。
第2步:生成CSR(证书签名请求)
在企业社会责任的一代,你会被提示输入多条信息。 这些是证书的X.509属性。 其中一个提示将用于“通用名称(例如服务器FQDN或您的名字)[]:”。 这个字段填入要被SSL保护的服务器的完全限定域名是很重要的。 因此,如果要保护的网站将是https://www.wamphelpers.dev
,则在此提示下输入www.wampheplers.dev
。我用wamphelper.dev
作为我ServerName
是ServerName wamphelpers.dev
不要输入任何的问题:一个挑战密码[]:]请按ENTER键。 如果你在这里输入一个密码,当你来到与SSL配置Apache将无法启动启动Apache,并给此错误消息: -
[错误]初始化:SSLPassPhraseDialog内置不支持在Win32
基本上,如果您输入密码,Apache每次启动时都应该向您询问密码。 这显然不会让你的生活变得更轻松,但主要是在Windows上,它实际上并不工作,并且 会导致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 []: [email protected]
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 - 警告 此证书将产生在客户端浏览器到 签名的证书颁发机构未知且不受信任的作用效果的误差。 这是不可避免的,因为我们自己签署证书,但当然信任网不知道我们是谁。 请参见本文档中的例子展示了如何告诉你的浏览器,你居然信任此证书
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/[email protected]
Getting Private key
第4步:安装私钥和证书
创建的版本下,这2个目录你正在使用的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
删除通讯从这个线ENT '#' 也
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 [email protected]
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:/ Apache2的....”
现在确保我们已经改变了所有的这些文件被保存,并使用wampmanager菜单重新启动Apache。
首先测试无保护的网站仍正常工作。
然后尝试使用新的受保护网站,方法是在域名 的前面添加“https://”,即https://www.wamphelpers.dev
,当然没有单引号。
如果Apache没有重新启动你可能已经拼了什么。测试CONFIGS像这样: -
打开命令窗口
cd \wamp\bin\apache\apachex.y.z\bin
httpd -t
这将解析所有的配置文件,并应给你一个文件名和已发现的错误的行号。
修复它,然后重试。
第一次访问您的网站会产生一个类似这样的消息页面。 这是使用FireFox,别人会略有不同,但它的概念是一样的。
这是因为你的证书不是由受信任的机构签署的,不要惊慌,这是应该发生的。
点击“我了解风险”,并会告诉你一个按钮,说“添加例外” 按添加例外按钮,检查后,该证书的网站细节其实都是你的, ,你不会看到除非您清除例外列表,否则再次发送此消息。
BIG注意 例如Apache v2.2.12的和OpenSSL v0.9.8j现在能够确保每一个Apache实例多个站点。 本教程不包含该过程。 在这里看到更多的细节:
Here
and Here
and Here
就像我在上面说,现在你需要做的SSL中所有可用选项的一些研制配置和让事情工作,而不是使用默认值。
此外,在不远的地方你添加虚拟开始你需要确保httpd.conf中包含“Include conf/extra/httpd-vhosts.conf”的行不被注释。该文件位于:C:\ wamp \ bin \ apache \ apache {version} \ conf – Spazmoe06 2015-06-02 03:29:16
@ Spazmoe06谢谢您添加了一个不是那个 – RiggsFolly 2015-06-02 10:26:17
这真的非常有帮助,谢谢你的努力。但我认为,CustomLog的“查找”部分存在问题“c:/wamp/logs/ssl_request.log”\ “%t%h%{SSL_PROTOCOL} x%{SSL_CIPHER} x \”%r \“%b” – Jobayer 2015-07-26 04:48:17