處理包含 *(星號)的萬用字元

解決方法有兩個:
1. 使用引號包裹路徑(最直接)
將路徑用單引號括起來,告訴 Linux 這是「字串」而不是「搜尋規則」。同時,ln 的目標路徑(Target)如果不存在,你不能直接連過去,應該先確保目錄存在。
bash
# 確保目標目錄存在
mkdir -p /root/ssl/

# 使用單引號包裹含有星號的路徑
ln -sf '/root/.acme.sh/*.zhao.ch_ecc/fullchain.cer' /root/ssl/fullchain.pem
ln -sf '/root/.acme.sh/*.zhao.ch_ecc/*.zhao.ch.key' /root/ssl/privkey.key
請謹慎使用程式碼。

2. 使用 acme.sh 的 install-cert 命令(官方推薦)
這是最正確的做法。 不要手動 lncp,因為證書更新後軟連結可能會失效。使用 install-cert 可以自動將證書複製到指定位置,並在未來自動更新。
bash
acme.sh --install-cert -d '*.zhao.ch' \
--key-file       /etc/nginx/ssl/privkey.key  \
--fullchain-file /etc/nginx/ssl/fullchain.pem \
--reloadcmd     "systemctl force-reload nginx"
請謹慎使用程式碼。

(註:路徑 /etc/nginx/ssl/ 請先手動 mkdir -p 建立)

在 Nginx 的 nginx.conf 中,引用證書路徑時不需要管那個星號目錄,直接指向你剛剛生成的平鋪路徑即可:
nginx
ssl_certificate     /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.key;

版权声明:
作者:yxbinghe
链接:https://www.zhanhao.ch/?p=670
来源:ice.99
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>