最近想要尝试一下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/来访问开发服务器了