diff --git a/.gitignore b/.gitignore index 5dec41a..6150ebf 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,6 @@ Desktop.ini # Agent Skills .agents/ + +# SSL certs (private keys) +certs/*.pem diff --git a/certs/generate_cert.sh b/certs/generate_cert.sh new file mode 100644 index 0000000..472cefc --- /dev/null +++ b/certs/generate_cert.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +# 產生自簽 SSL 憑證供 Uvicorn HTTPS 使用 +# 用法: bash certs/generate_cert.sh + +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +CERT_FILE="${SCRIPT_DIR}/cert.pem" +KEY_FILE="${SCRIPT_DIR}/key.pem" +DAYS=3650 + +if [ -f "$CERT_FILE" ] && [ -f "$KEY_FILE" ]; then + echo "憑證已存在: ${CERT_FILE}, ${KEY_FILE}" + echo "如需重新產生,請先刪除後再執行。" + exit 0 +fi + +openssl req -x509 -newkey rsa:2048 -nodes \ + -keyout "$KEY_FILE" \ + -out "$CERT_FILE" \ + -days "$DAYS" \ + -subj "/CN=$(hostname)" \ + -addext "subjectAltName=DNS:$(hostname),IP:0.0.0.0" + +echo "已產生自簽憑證(有效 ${DAYS} 天):" +echo " cert: ${CERT_FILE}" +echo " key: ${KEY_FILE}" diff --git a/dea.service b/dea.service index e890e84..6f52803 100644 --- a/dea.service +++ b/dea.service @@ -6,7 +6,7 @@ After=network.target User=wisetop WorkingDirectory=/home/wisetop/diff-eq-analyzer Environment="PATH=/home/wisetop/diff-eq-analyzer/.venv/bin" -ExecStart=/home/wisetop/diff-eq-analyzer/.venv/bin/uvicorn dea_api:app --host 0.0.0.0 --port 8000 +ExecStart=/home/wisetop/diff-eq-analyzer/.venv/bin/uvicorn dea_api:app --host 0.0.0.0 --port 8000 --ssl-keyfile=/home/wisetop/diff-eq-analyzer/certs/key.pem --ssl-certfile=/home/wisetop/diff-eq-analyzer/certs/cert.pem Restart=always RestartSec=3 diff --git a/src/App.vue b/src/App.vue index 3018ea0..6307e81 100644 --- a/src/App.vue +++ b/src/App.vue @@ -74,7 +74,7 @@
@@ -83,22 +83,25 @@
-
- - +
+

+ ⚠ 此瀏覽器不支援 Web Serial。MCU 寫值功能需使用 Chrome 或 Edge,且透過 HTTPS 連線。 +

{{ mcuStatus }}