本地在Windows上使用mkcert
来搭建一个HTTPS服务涉及几个步骤。首先,需要安装mkcert
和它的根证书信任,然后生成证书,最后配置HTTP服务器来使用这些证书。以下是一个详细的步骤:
首先从mkcert
的GitHub仓库下载适合Windows的二进制文件:https://github.com/FiloSottile/mkcert/releases
下载后,将下载的exe文件名修改为mkcert.exe
,然后将mkcert.exe
放到一个你可以方便访问的地方,比如C:\mkcert
,然后将其添加到你的系统路径中。步骤如下:
mkcert.exe
所在的完整路径(比如C:\mkcert
)。打开命令提示符(CMD)或PowerShell,并导航到mkcert.exe
所在的目录,然后运行以下命令来安装和信任mkcert的根证书:
mkcert -install
这个命令会生成一个本地根证书,并将其安装到Windows的证书存储中。浏览器和其他客户端将信任由此根证书签发的所有证书。
现在可以使用mkcert
来为你的本地域名生成证书了。例如,如果想为本地开发服务器localhost
或example.test
生成证书,可以这样做:
首先,需要将example.test
解析到本地IP地址(通常是127.0.0.1
)。可以通过编辑Windows的hosts文件来实现这一点。hosts文件通常位于C:\Windows\System32\drivers\etc\
目录下。使用文本编辑器(如记事本)打开它,并在文件末尾添加以下行:
127.0.0.1 example.test
然后保存并关闭文件。
接下来,在命令提示符或PowerShell中运行以下命令来生成证书:
mkcert example.test
这将在当前目录下生成两个文件:example.test.pem
(证书)和example.test-key.pem
(私钥)。
根据服务器类型(如IIS、Nginx、Apache、Node.js的Express等),需要配置它以使用这些证书和私钥。以下是一个简单的Nginx 示例:
server {
listen 443 ssl; # 监听443端口并使用ssl
server_name example.test; # 你的域名
# SSL证书和私钥位置
ssl_certificate /path/to/example.test.pem;
ssl_certificate_key /path/to/example.test-key.pem;
# 可选的SSL设置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # SSL协议版本
ssl_ciphers HIGH:!aNULL:!MD5; # SSL加密算法
ssl_prefer_server_ciphers on; # 优先使用服务器提供的加密算法
# 其他配置...
location / {
# 代理设置或其他配置...
proxy_pass http://127.0.0.1;
# 其他proxy_set指令...
}
# 其他location块...
}
https关键配置是ssl_certificate
和ssl_certificate_key
配置,其他按需要即可
现在,可以通过HTTPS访问你的本地服务了。例如,如果你的服务器在端口3000上运行,并且你已经将example.test
解析到127.0.0.1
,那么你可以通过https://example.test:3000
来访问它。在浏览器中打开这个URL,你应该能够看到一个由你服务提供的页面,并且是通过HTTPS加密的。