windows使用mkcert本地搭建一个https服务

技术 置顶 精帖
0 144
peng49
peng49 2024-05-16 10:58:08
 

本地在Windows上使用mkcert来搭建一个HTTPS服务涉及几个步骤。首先,需要安装mkcert和它的根证书信任,然后生成证书,最后配置HTTP服务器来使用这些证书。以下是一个详细的步骤:

1. 安装mkcert

首先从mkcert的GitHub仓库下载适合Windows的二进制文件:https://github.com/FiloSottile/mkcert/releases

下载后,将下载的exe文件名修改为mkcert.exe,然后将mkcert.exe放到一个你可以方便访问的地方,比如C:\mkcert,然后将其添加到你的系统路径中。步骤如下:

  1. 搜索“环境变量”并打开“编辑系统环境变量”。
  2. 点击“环境变量”按钮。
  3. 在“系统变量”部分,找到名为“Path”的变量,然后点击“编辑”。
  4. 点击“新建”,并输入mkcert.exe所在的完整路径(比如C:\mkcert)。
  5. 点击“确定”保存更改。

2. 信任mkcert的根证书

打开命令提示符(CMD)或PowerShell,并导航到mkcert.exe所在的目录,然后运行以下命令来安装和信任mkcert的根证书:

  1. mkcert -install

这个命令会生成一个本地根证书,并将其安装到Windows的证书存储中。浏览器和其他客户端将信任由此根证书签发的所有证书。

3. 生成证书

现在可以使用mkcert来为你的本地域名生成证书了。例如,如果想为本地开发服务器localhostexample.test生成证书,可以这样做:

首先,需要将example.test解析到本地IP地址(通常是127.0.0.1)。可以通过编辑Windows的hosts文件来实现这一点。hosts文件通常位于C:\Windows\System32\drivers\etc\目录下。使用文本编辑器(如记事本)打开它,并在文件末尾添加以下行:

  1. 127.0.0.1 example.test

然后保存并关闭文件。

接下来,在命令提示符或PowerShell中运行以下命令来生成证书:

  1. mkcert example.test

这将在当前目录下生成两个文件:example.test.pem(证书)和example.test-key.pem(私钥)。

4. 配置服务器

根据服务器类型(如IIS、Nginx、Apache、Node.js的Express等),需要配置它以使用这些证书和私钥。以下是一个简单的Nginx 示例:

  1. server {
  2. listen 443 ssl; # 监听443端口并使用ssl
  3. server_name example.test; # 你的域名
  4. # SSL证书和私钥位置
  5. ssl_certificate /path/to/example.test.pem;
  6. ssl_certificate_key /path/to/example.test-key.pem;
  7. # 可选的SSL设置
  8. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # SSL协议版本
  9. ssl_ciphers HIGH:!aNULL:!MD5; # SSL加密算法
  10. ssl_prefer_server_ciphers on; # 优先使用服务器提供的加密算法
  11. # 其他配置...
  12. location / {
  13. # 代理设置或其他配置...
  14. proxy_pass http://127.0.0.1;
  15. # 其他proxy_set指令...
  16. }
  17. # 其他location块...
  18. }

https关键配置是ssl_certificatessl_certificate_key配置,其他按需要即可

5. 访问HTTPS服务

现在,可以通过HTTPS访问你的本地服务了。例如,如果你的服务器在端口3000上运行,并且你已经将example.test解析到127.0.0.1,那么你可以通过https://example.test:3000来访问它。在浏览器中打开这个URL,你应该能够看到一个由你服务提供的页面,并且是通过HTTPS加密的。

回帖
登录
忘记密码?