我有一个非常庞大且复杂的服务器应用程序,在其中嵌入的众多开源工具中,CouchDB 3.3.3 就是其中之一。 “烘焙”很重要,因为供应商所做的是烘焙 Couch 的精简版本,而不是完整安装。作为我们应用程序部署的一部分,所有安装都必须进行安全扫描,并且安全人员对配置 Couch 的端口(在本例中为 29081,由应用程序供应商固定)not 返回标头中的“严格传输安全”。该应用程序还包括 Apache(我们能够对其进行强化),并且一些流量通过该端口通过 Apache 到达 Couch,因此是 https 部分。问题是:我可以通过以下方式访问 Couch:
CURL>curl -X GET -u admin:password https://someserver:29081/_users
甚至可以看到数据库存在:
CURL>curl -X GET -u admin:password https://someserver:29081/_all_dbs
["_replicator","_users","dsconfig$"]
但是当我尝试时
CURL>curl -X GET -u admin:password https://someserver:29081/settings/security/responseHeaders
每https://docs.couchbase.com/server/current/rest-api/rest-setting-hsts.html我明白了
{"error":"not_found","reason":"Database does not exist."}
我还可以访问 Fauxton Web 界面,但似乎没有明显的 HSTS 配置部分/设置。
部分流量通过该端口通过 Apache 到达 Couch,因此是 https 部分
可以在 VirtualHost 下的每个 apache 响应上强制添加标头,例如
<VirtualHost *:443>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
“烘焙”很重要,因为供应商所做的是烘焙 Couch 的精简版本,而不是完整安装
最好的猜测,精简的数据库根本不支持 settings/security/responseHeaders 端点。幸运的是,您可以使用 Apache 添加它。