如何在Wamp服务器中启用SSL?

sim*_*lue 29 php ssl wamp

我试过在网上搜索它,但我感到很困惑.我没有得到任何澄清.

Sto*_*fke 24

STEP BY STEP教程

复制链接:

在WAMP上启用SSL

本分步指南介绍了如何在WAMP上使用SSL.

  1. 此处下载WampServer 2.0 并将其安装到默认位置(c:\ wamp).

  2. 现在,我们需要一个私钥/公钥对以及一个CA来签署我们的公钥.

首先,让我们看看如何创建私钥/公钥对.

keytool -genkey -alias rpcert -keyalg RSA -keysize 1024 -dname "CN=identity-rp,L=SL,S=WS,C=LK" -keypass wso2key -keystore rpkeystore.jks -storepass wso2key
Run Code Online (Sandbox Code Playgroud)

这将创建一个带有公钥/私钥对的密钥库[rpkeystore.jks].

之前的帖子解释了如何从密钥库导出私钥.只需按照那里给出的步骤操作,您将得到一个文件server.key,这是您的私钥.

现在,我们需要与CA签署我们的公共证书.

这 - 要求我们创建一个示例CA,并说明如何执行此操作.

在这里,我们使用OpenSSL来构建所需的CA基础结构.对于Windows,您可以从此处下载Win32 OpenSSL v0.9.8g .

安装后,请确保添加C:\OpenSSL\bin [i.e [INSTALLED_LOCATION]\bin]到PATH env变量.

openssl req -x509 -newkey rsa:1024 -keyout cakey.pem -out cacert.crt
Run Code Online (Sandbox Code Playgroud)

以上内容将为我们的示例CA创建公钥/私钥对.

现在,我们需要为服务器创建证书签名请求.

转到创建密钥库[rpkeystore.jks]的文件夹,然后发出以下命令.

keytool -certreq -v -alias rpcert -file csr.pem -keypass wso2key -storepass wso2key -keystore rpkeystore.jks 
Run Code Online (Sandbox Code Playgroud)

现在将csr.pem复制到为CA生成密钥的文件夹,然后从那里发出以下命令.

openssl x509 -req -days 365 -in csr.pem -CA cacert.crt -CAkey cakey.pem -CAcreateserial -out server.crt
Run Code Online (Sandbox Code Playgroud)

到现在为止,我们已经拥有了所有需要的文件.

cacert.crt - > CA公共证书server.crt - >由CA server.key签署的服务器公共证书 - >服务器私钥.

c:\wamp\bin\apache\apache2.2.8\conf假设您已将WAMP安装到默认位置,请复制以上三个文件.

还要编辑c:\ WINDOWS\system32\drivers\etc\hosts文件并添加以下条目.

127.0.0.1 identity-rp
Run Code Online (Sandbox Code Playgroud)

如果您还记得,当我们为服务器创建公共证书时,我们为identity-rp创建了它.

  1. 编辑httpd.conf [C:\ wamp\bin\apache\apache2.2.8\conf]

取消注释以下两行.

LoadModule ssl_module modules/mod_ssl.so

Include conf/extra/httpd-ssl.conf
Run Code Online (Sandbox Code Playgroud)

找到Listen 80并将其更改为Listen 12081 - 这是我们的服务器在端口号12081上运行.

找到ServerName并将其设置为ServerName identity-rp:12081.

  1. 编辑httpd-ssl.conf [C:\ wamp\bin\apache\apache2.2.8\conf\extra]

    设置Listen identity-rp:12444 - 我们正在侦听端口12444以进行安全通信.

    设置DocumentRoot"C:/ wamp/www /"

    设置ServerName identity-rp:12444

对于整个文件,找到"C:/ Program Files/Apache Software Foundation/Apache2.2"并替换为"C:/wamp/bin/apache/apache2.2.8".

找到SSLCertificateFile并设置SSLCertificateFile"C:/wamp/bin/apache/apache2.2.8/conf/server.crt"

找到SSLCertificateKeyFile并设置SSLCertificateKeyFile"C:/wamp/bin/apache/apache2.2.8/conf/server.key"

找到SSLCACertificateFile并设置SSLCACertificateFile"C:/wamp/bin/apache/apache2.2.8/conf/cacert.crt"

  1. 编辑php.ini(C:\ wamp\bin\apache\apache2.2.8\bin)

取消注释该行 extension=php_openssl.dll

  1. 现在我们完成了 - 进行语法检查并启动apache服务器.

    :> cd C:\ wamp\bin\apache\apache2.2.8\bin:> httpd -t:> httpd --start

  2. https://identity-rp:12444在浏览器上键入- 您将在浏览器中看到证书错误 - 以避免它在浏览器中安装CA证书.

  • 我的阅读并不算太糟糕(无耻的插件)http://www.phpjoel.com/2011/04/07/installing-ssl-using-openssl-on-a-wamp-localhost/ (2认同)

Lew*_*wis 5

本地主机SSL/HTTPS通信的简便方法:

去下载:cacert.pem文件

c:/wamp/bin/php/php5.5.12/cacert.pem*取消评论和更改: php.ini

  • 您可以php.ini通过php --ini在CLI中运行来查找文件在计算机上的位置
  • 为了方便起见,我将cacert.pem放在与php.ini相同的目录中.

  • 感谢downvoting. (2认同)
  • 这与有关启用 SSL *服务器* 的问题无关。您的回答会影响 curl *client* 将接受哪些 CA 为有效,并且当然不建议从某些随机代码存储库下载如此重要的文件。 (2认同)

T.T*_*dua 5

简单的解决方案:

2018 年之前的教程既古老又庞大……但是,今天,您只需要简单的东西:

  • 正在加载 2 个 Apache 模块。
  • 生成证书
  • 在虚拟主机文件中添加证书。

(您可能会发现这篇文章非常有帮助)。