Https 本地服务器小纸条

·

1 min read

最近想要尝试一下Telegram mini app,在调试时需要使用https的服务。试来试去发现在Mac下完成一个简单的HTTPS服务器还是需要点奇奇怪怪的工具的。但是整体来讲非常简单。

准备证书

主要会使用mkcert来创建证书。首先安装mkcert。

brew install mkcert
brew install nss # if use Firefox

将mkcert加入到本地root CA。

mkcert -install

生成证书

本地调试可以使用localhost或127.0.0.1,而这两个其实是两个域名,需要两套证书的

mkcert localhost
mkcert 127.0.0.1

这样它就会生成两个文件,一个是key一个是cert。

启动Web服务器

我使用python来启动一个简单的服务器

from http.server import HTTPServer, SimpleHTTPRequestHandler
import ssl

keyfile = "../127.0.0.1-key.pem"
certfile = '../127.0.0.1.pem'
hostname = '127.0.0.1'

context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
context.load_cert_chain(certfile=certfile, keyfile=keyfile)

httpd = HTTPServer((hostname, 4443), SimpleHTTPRequestHandler)
httpd.socket = context.wrap_socket(httpd.socket, server_side=True)
httpd.serve_forever()

这样你就可以通过https://127.0.0.1/来访问开发服务器了