ssl certificate self signed on nginx and fastapi for centos8

(อันนี้เป็น intro ไม่สนก็ข้ามไปจ๊ะ )  นั้นละครับ เมือเจอ case งาน ก็เลยต้องบันทึกสักหน่อย

ผมเจอว่าต้องทำ ssl certificate self signed ให้กับ nginx และ fastapi บน centos8

โดยขอลำดับจากสร้าง ssl certificate self signed ตามนี้

ทำการติดตั้ง mod_ssl

yum install mod_ssl

จากนั้นสร้าง ssl certificate

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout xxx.key -out xxx.crt

จากนั้นจะมีการถามคำถามก็ตอบๆไป ต่อมาก็ ดูที่อยู่ของ xxx.crt และ xxx.key ไว้

ต่อมา ก็ไปตั้งค่าที่ nginx ที่ไฟล์ /etc/nginx/nginx.conf  แล้วไปใส่ของ https ที่เป็น port 443 ตามนี้

server {
listen 443 ssl http2 default_server;
#listen [::]:443 ssl http2 default_server;
server_name _;
root /usr/share/nginx/html;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE+RSAGCM:ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:!aNULL!eNull:!EXPORT:!DES:!3DES:!MD5:!DSS;
ssl_certificate /home/ssl/xxx.crt;
ssl_certificate_key /home/ssl/xxx.key;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

location / {
index index.php index.html index.htm;
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

โดยที่ ssl_certificate กับ ssl_certificate_key ก็คือไฟล์ที่เราสร้างมาตามที่อยู่นั้น

จากนั้นลอง restart service nginx ดู แล้วทดสอบ

ต่อมาเป็นการตั้งค่าที่ fast api

โดยตัวอย่างนี้จะเป็นที่ ไฟล์ python ที่ทำไว้

import uvicorn

if __name__ == '__main__':
    uvicorn.run("app.main:app",
                host="0.0.0.0",
                port=8432,
                reload=True,
                ssl_keyfile="/home/ssl/xxx.key", 
                ssl_certfile="/home/ssl/xxx.crt" )

สรุปคือ ที่  ssl_keyfile และ ssl_certfile คือไฟล์ที่สร้างมา หลังจาก ใส่แล้วก็ลอง run ดูครับ 

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *