这步不用说了吧,搜到这篇文章的基本都安装了 WAMP 环境。
OpenSSL 是一个开源命令行工具,用于生成 SSL 证书和秘钥。 OpenSSL 网站提供 32 位和 64 位版本。 看自己 Windows 版本情况下载,一般 WIN10 都直接64位走起。从这里下载最新版本的 OpenSSL,另外咱们只是生成个 SSL 证书,使用 Light 版本就够用了。
1. 我这边直接把 OpenSSL 安装在了 C:\OpenSSL-Win64 ,需要在 CMD 命令行中进入到 C:\OpenSSL-Win64\bin 文件夹
2. 然后输入下方命令生成秘钥,其中会提示输入密码,随便输入个容易记的密码就好,这个密码不太重要,123456 走你。
提示:输入的密码是不可见的,直接输入然后回车即可,然后再次输入一遍做密码验证。
根据已生成的RSA私钥输出无加密的私钥
再次提示需要输入密码,输入刚才你键入的密码
此时私钥就生成好了,在 C:\OpenSSL-Win64\bin 文件夹下就会有个 private.key 文件生成,其实刚才已经生成了,只是我们做了一个移除密码的工作。
还是在当前 C:\OpenSSL-Win64\bin 文件夹,再次输入命令,用来生成证书文件
提示需要输入一些信息,都是一些无关紧要的信息,我们只是做本地环境测试,没必要认真填写。一路回车就可以了。Common Name 那里输入 localhost 或者你的虚拟主机域名。
此时证书也生成好了,在当前文件夹下可以看到有个 certificate.crt 证书文件。
将证书和私钥文件移动到 WAMP 的 Apache 的配置文件夹中,根据自己个人路径和 Apache 版本而定,我的是在 C:\wamp64\bin\apache\apache2.4.46\conf,创建一个 key 文件夹,然后将证书和秘钥拷贝过来。
用文本编辑器(Notepad++ 之类的)打开 wamp64\bin\apache\apache2.4.46\conf\httpd.conf 文件,将下边三行的注释取消(移除 # 字符)
用文本编辑器打开 wamp64\bin\apache\apache2.4.46\conf\extra\httpd-ssl.conf 文件,搜索对应配置信息,进行修改。
其实此时,你的 SSL 已经配置完成了,重启 WAMP 服务,访问 https://localhost 就能正常访问了。虽然会弹出证书无效的提示(因为自己发的嘛),不过已经可以在当前环境工作了。如果你是单站点,并且修改了 host,那么在 ServerName 那边设置域名即可。如果是多站点,开启了虚拟主机,那么您借着往下看。
如果你给自己配置了虚拟主机,支持本地多站点域名访问操作,(一般人都会这么干吧,不会的可以参考 Forece 之前写过的文章,点击这里),那么还需要对虚拟主机进行配置。
打开 wamp64\bin\apache\apache2.4.46\conf\extra\httpd-vhosts.conf
复制一份需要开启 SSL 的站点配置(如果不想80端口生效的话,直接在80端口的配置修改也可以),然后添加几条配置
最后,如果想让 SSL 生效的话,需要重启 WAMP 服务。如果图标变绿了,那么代表一切正常,直接访问站点即可。
如果图标不是绿色,而是橘色,那么代表 Apache 没能正常开启,需要在命令行模式下进入 wamp64/bin/apache/apache2.4.41/bin/ 文件夹用 httpd-t 命令来进行排查哪出错了。
顺便说一下自己,配置了无数遍,就是无法正常启动 Apache,最后发现原来 443 端口(SSL端口)被其他程序占用了。怒改端口,然后成功开启。
– 在 SSL配置 改掉 LISTEN 端口
– 在 SSL配置 改掉 虚拟主机端口
– 在 虚拟主机配置 改掉虚拟主机端口
然后通过排查,发现原来是 VMware 占用了 443 端口,去 VMware 配置中改了端口(编辑-首选项-共享虚拟机),再把 WAMP 端口配置改回来,完美!
______________________
以上操作Apache报错
采用如下生成证书可行:
openssl genrsa -des3 -passout pass:x -out mysite.pass.key 2048 openssl rsa -passin pass:x -in mysite.pass.key -out mysite.key openssl req -new -key mysite.key -out mysite.csr openssl x509 -req -days 365 -in mysite.csr -signkey mysite.key -out mysite.crt