【发布时间】:2022-01-12 20:04:21
【问题描述】:
我正在尝试使用 sed 修改 NGINX 配置文件。我想替换 ssl_certificate 和 ssl_certificate_key 的值
config="/etc/nginx/httpd.conf"
certfile="server.pem"
keyfile="key.pem"
sed -i -e "s/\(ssl_certificate *\/etc\/pki\/nginx\/\).*/\1$certfile/" $config
sed -i -e "s/\(ssl_certificate_key *\/etc\/pki\/nginx\/private\/\).*/\1$keyfile/" $config
我要修改的起始行看起来像这样
ssl_certificate /etc/pki/nginx/selfsigned.crt;
ssl_certificate_key /etc/pki/nginx/private/selfsigned.key;
ssl_dhparam /etc/pki/nginx/dhparam.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
我结束了
ssl_certificate /etc/pki/nginx/server.pem
ssl_certificate_key /etc/pki/nginx/server.pem
ssl_dhparam /etc/pki/nginx/server.pem
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
我想要实现的是将 selfsigned.crt 替换为 server.pem 和 selfsigned.key 替换为 key。 pem 实现
ssl_certificate /etc/pki/nginx/server.pem
ssl_certificate_key /etc/pki/nginx/key.pem
ssl_dhparam /etc/pki/nginx/dhparam.pem
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
请指教。 TIA
【问题讨论】:
-
你最终得到了不同的 ssl_certificate 和 ssl_certificate_key 值,所以看起来你已经实现了你的目标。
-
变量
$ssl_certificate的值是多少?我怀疑您需要省略$并使用文字字符串ssl_certificate。 -
我刚刚意识到我打错了——不是 $ssl_certificate 而是 ssl_certificate。模式中没有变量,只有裸文本。