iT邦幫忙

2026 iThome 鐵人賽

DAY 12
0

自產憑證及在Nginx上掛憑證的文章在網路,AI也能給不錯的Solution,不過因應劇情需要還是要把流程講一遍。

自建憑證

在RedHat主機建立放憑證的目錄:

mkdir -p /home/appuser/a2a-proxy/certs
cd /home/appuser/a2a-proxy/certs

然後在該目錄產生私鑰與憑證:

openssl req -x509 -nodes -days 3650 \
  -newkey rsa:2048 \
  -keyout a2a-proxy.key \
  -out a2a-proxy.crt \
  -subj "/C=TW/ST=Taiwan/L=Taipei/O=Dev/OU=A2A/CN=10.1.2.5" \
  -addext "subjectAltName=IP:10.1.2.5,DNS:localhost,DNS:a2a-proxy"

產生後會有:

/home/appuser/a2a-proxy/certs/a2a-proxy.crt
/home/appuser/a2a-proxy/certs/a2a-proxy.key

建議權限:

chmod 644 /home/appuser/a2a-proxy/certs/a2a-proxy.crt
chmod 600 /home/appuser/a2a-proxy/certs/a2a-proxy.key

修改a2a-proxy.container的[Container]下的內容:vi ~/.config/containers/systemd

[Container]
# 略...
PublishPort=8088:80
# 增加8443 port
PublishPort=8443:8443
Volume=/home/appuser/nginx/nginx.conf:/etc/nginx/nginx.conf:ro,Z
# 增加以下這行
Volume=/home/appuser/a2a-proxy/certs:/etc/nginx/certs:ro,Z

SELINUX的Z選項是指該目錄是容器專屬,ro選項是指Read Only。
然後再複習昨天的nginx.conf設定的部份:

    server {
        listen       8443 ssl;
        server_name  _;

        ssl_certificate     /etc/nginx/certs/a2a-proxy.crt;
        ssl_certificate_key /etc/nginx/certs/a2a-proxy.key;

        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers HIGH:!aNULL:!MD5;
        # 後面略...
    }

再daemon-reload及restart a2a-proxy後,可以從在瀏覽器輸入:https://RedHatIP:8443,因為是是自簽憑證,所以瀏覽器不會信任所以 Chrome / Edge / Safari 會顯示「不安全」或「此連線並非私人連線」。可以直接參訪,預設會導向a2a-web的登入頁。


上一篇
容器互Call:Proxy設定部份
系列文
Podman Quadlet-容器服務化(在單體系統到微服務之間)12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言