记录遇到的坑:使用Windows +Apache +Mkcert 生成https的SSL证书

首先,为何要做这样的事情呢?

因为我需要在网站上添加一个功能,就是上传剪贴板图片。

看起来很容易,实际上浏览器对http限制很大,不允许用户访问剪贴板,所以,有两个解决方案:

一,让客户使用按键 Ctrl + v 直接粘贴剪贴板图片,实现上传。

二,把网站改为https。

最终,在 ai 的帮助下,我两个都实现了。我在A电脑上传剪贴板图片,在B电脑实现粘贴剪贴板图片。

(有人问,为何我不直接上传图片?因为这个功能早已经有了,但是操作较为繁琐,现在是新增操作更简单的功能。) 

 

我让 ai 帮我处理https的事情,(强烈建议使用 chatGPT),ai 给了我解决方案:mkcert生成证书。直接用 ai 的教程来安装即可。局域网ip 192.168.2.199(本机)

mkcert -install

mkcert 192.168.2.199 localhost 127.0.0.1 ::1

接下来,我一步步实现:一,localhost,二,局域网ip 192.168.2.199(本机),三,公网ip(其中的一个坑:实现这个的时候,注意防火墙的入站规则添加443端口,注意用路由器对外公开443端口)

我问了 ai 两个问题:

一、

windows在 Apache 中配置 SSL,并使用 mkcert 生成的证书。
我的 路径是 "E:\GreenSoftware\mkcert\192.168.2.199+3-key.pem",我的apache配置是 D:\AppServ_PHP\Apache24\conf,我的ip是 192.168.2.199,我的webroot是 D:\AppServ_PHP\www,请帮我改 httpd-ssl.conf的配置

配置 Apache 启用 SSL

  • 打开 httpd.conf,确保以下行未被注释掉:
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
 

配置 Apache 使用自签名证书

  1. 找到并打开 httpd-ssl.conf 文件,路径一般是 D:/AppServ_PHP/Apache24/conf/extra/httpd-ssl.conf

  2. 确保有这行(这是其中一个坑,不是在httpd.conf里添加,而是在这里添加):

    Listen 443

  3. 配置证书和私钥路径:

    修改配置文件中的以下行,使其指向您刚刚生成的证书和私钥路径:

<VirtualHost _default_:443>
DocumentRoot "D:/AppServ_PHP/www"
ServerName 192.168.2.199:443

SSLEngine on
SSLCertificateFile "E:/certs/myserver.crt"
SSLCertificateKeyFile "E:/certs/myserver.key"

<Directory "D:/AppServ_PHP/www">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

请确保将 SSLCertificateFileSSLCertificateKeyFile 的路径修改为您实际存放证书和私钥的路径。

 
其实就是按 ai 的教程走就是了,注意避开上面提到的坑即可。其它有什么不懂的,就直接问 ai 就好了。
 
 
 
 
posted @ 2024-12-04 09:25  zzgreg  阅读(9)  评论(0编辑  收藏  举报