我正在创build一个可重复使用的脚本,用于在服务器设置中自动设置新的SSL。 我有几条不同的路线需要更新文件path。
在ssl.conf文件中的默认值是这样的(一个有领先的#标签):
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
我需要它在bash脚本中dynamic设置,最终如下所示:
SSLCertificateFile /etc/pki/tls/certs/example.crt
到目前为止,我开始了这个,但我不知道我在做什么。
WAMP响应缓慢
mod_rewrite:从URL中删除查询string?
如何防止用户访问包含文件?
任何替代CachingHttpClient的Android?
通过Apache服务页面访问socket.io服务器
~/update_ssl_conf.sh
码:
#!/bin/bash SSL_CONFIG_PATH="/etc/httpd/conf.d/ssl.conf" SSL_DEFAULT_CERT_PATH="SSLCertificateFile /etc/pki/tls/certs/localhost.crt" SSL_CERT_PATH="SSLCertificateFile /etc/pki/tls/certs/example.crt" sed "s/.*b$SSL_DEFAULT_CERT_PATHb.*/$SSL_CERT_PATH/" $SSL_CONFIG_PATH
*** UPDATED AREA,还需要sed命令来更新以#开头的行。
ssl.conf文件中的默认值如下所示(引导#标签):
#SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
我需要它在bash脚本中dynamic设置,最终如下所示:
SSLCACertificateFile /etc/pki/tls/certs/example-ca-bundle.crt
到目前为止,我开始了这个,但我不知道我在做什么。
~/update_ssl_conf.sh
码:
#!/bin/bash SSL_CONFIG_PATH="/etc/httpd/conf.d/ssl.conf" SSL_DEFAULT_CA_CERT_PATH="#SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt" SSL_CA_CERT_PATH="SSLCACertificateFile /etc/pki/tls/certs/example-ca-bundle.crt"
我尝试从接受的解决scheme
sed -i "s|.*b#$SSL_DEFAULT_CA_CERT_PATHb.*|$SSL_CA_CERT_PATH|" SSL_CONFIG_PATH
和
sed -i "s|(?s).*(?<!\w)$SSL_DEFAULT_CA_CERT_PATH(?!\w).*|$SSL_CA_CERT_PATH|" $SSL_CONFIG_PATH
因为正则expression式不正确,所以都没有工作。
Apache Benchmark – 并发和请求的数量
Apache(xamp)和IIS不能一起工作
mod_rewrite to index.html为深层URL分配相对path
如何在windows上configurationapache和mode_wsgi进行本地django开发
初始化模块在Apache2
问题是斜杠。 你的变量包含它们,最终的命令将有多个正斜杠,这会影响你原来的sed语法 s / <search>/<replace/ syntax。 只需将您的sed字词分隔符从/更改为| (或任何其他字符,例如说@或~ )来修复它。
sed -i "s|.*b$SSL_DEFAULT_CERT_PATHb.*|$SSL_CERT_PATH|" file
应该解决您的问题,并使用-i标志进行就地替换,并执行-i.bak以<filename>.bak格式保存文件的备份
GNU sed , man页说
在任何给定的s命令中,/字符可以被任何其他单个字符统一替换。 /字符(或任何其他字符替代使用)可以出现在正则表达式或更换只有前面有一个字符。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。