
Python で簡易ローカルHTTPSサーバを立てる
「Python」で簡易ローカルHTTPSサーバを立てる方法をまとめました。
・Python 3.10
・macOS
1. ローカルHTTPSサーバを立てる
ローカルHTTPSサーバを立てる手順は、次のとおりです。
(1) SSL証明書と秘密鍵の準備。
以下のコマンドで「cert.pem」「key.pem」が生成されます。
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:Bunkyo
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Personal
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:localhost
Email Address []:
(2) 表示するHTMLの準備。
・index.html
Hello World!
(3) Pythonの仮想環境の準備。
(4) サーバの準備。
・https_server.py
import http.server
import ssl
# サーバのアドレスとポートを設定
server_address = ('0.0.0.0', 4443)
handler = http.server.SimpleHTTPRequestHandler
httpd = http.server.HTTPServer(server_address, handler)
# SSLを設定
httpd.socket = ssl.wrap_socket(
httpd.socket,
server_side=True,
certfile="cert.pem",
keyfile="key.pem",
ssl_version=ssl.PROTOCOL_TLS
)
# 起動
print("HTTPS Server running on https://0.0.0.0:4443")
httpd.serve_forever()
(5) サーバの起動。
python https_server.py
2. ローカルHTTPSサーバにアクセス
ローカルHTTPSサーバにアクセスする手順は、次のとおりです。
(1) ローカルHTTPSサーバを立てたPCのIPアドレスを確認。
IPアドレスは環境によって変わります。
ipconfig getifaddr en0
192.168.2.179
(2) 同じWi-Fiネットワーク内の端末のブラウザで「https://192.168.2.179:4443」を開く。
IPアドレスは環境によって変わります。
Chromeでは「この接続ではプライバシーが保護されません」と警告が表示されますが、「詳細設定→アクセスする」で表示できます。
