- ปกติทดลองเขียน RESTFul โดย Python อาศัย FLASK ทำเป็น web server ไปแล้วรอบหนึ่งโปรเจค https://juuier.blogspot.com/2020/09/restful-api-python.html
- แต่โปรเจคนี้ คือ อยากให้ FLASK รัน https ได้โดย cer fake นี่แหละ โดยไม่ต้องทำอะไรให้ยุ่งยาก
Environment
- Ubuntu 18.04
- Python3
Pre
- $ pip flask
- ปกติรัน app แบบนี้
if __name__ == '__main__':
app.run(port=1234)
- เปลี่ยนเป็น
app.run(host='127.0.0.1', port='1234', debug=True, ssl_context=('adhoc'))
- แบบนี้มันจะรันเว็บที่ https://localhost:1234
- ถ้าเราไม่ระบุ port ค่าเริ่มต้นจะเป็น 5000
Solved 2 : Using Self-signed .pem
certificate (Subject Type=CA)
- สร้าง cer .pem ด้วย openssl หาวิธีติดตั้ง openssl เอาเองนะคับ
- เปิด terminal แล้ว เข้าไปยังพาธไฟล์ .py ของเรา
- และใช้คำสั่งสร้าง cer ปลอมคือ
$ openssl req -x509 --newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365
- จากนั้นใน .py เราให้เขียน ประมาณด้านบน แต่เพิ่ม .pem ที่เราสร้างไว้เองเข้าไป
app.run(host='192.168.1.127', port='8282', debug=True, ssl_context=('cert.pem', 'key.pem'),)
Solved 3 : Using Self-signed .crt certificate
$ openssl genrsa -des3 -out server.key 1024
$ openssl req -new -key server.key -out server.csr
$ cp server.key server.key.org
$ openssl rsa -in server.key.org -out server.key
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
- ใน .py เขียนประมาณนี้
app.run(
host='192.168.1.127', port="8282", debug=True,
ssl_context=('server.crt', 'server.key')
)
Related
- https://juuier.blogspot.com/2020/09/restful-api-python.html
Ref
- https://stackoverflow.com/questions/59861685/how-to-run-flask-app-in-localhost-with-ssl
ถ้าเป็น Windows ต้องเขียนยังไงครับ
ReplyDelete