我已经在node.js中创建了一个项目,用于存储和获取Cyberark Conjur的凭据(使用其REST-API) 但是,要测试该应用程序,我会尝试设置conjur服务器。
问题是服务器在docker容器中运行良好,但是如何在(主机)外部访问它(端口映射不起作用)
或者Internet上托管了任何conjur服务器以供公共使用
我只想测试API调用
答案 0 :(得分:2)
截至撰写本文时,Conjur Node.js API 目前尚未得到积极支持。以下是测试 API 的一些建议。
我可以看看你用来启动 docker/docker-compose 文件的命令吗?
方法一
如果您使用 Conjur Quickstart Guide 中的设置,您的 docker-compose.yml
文件应该类似于:
...
conjur:
image: cyberark/conjur
container_name: conjur_server
command: server
environment:
DATABASE_URL: postgres://postgres@database/postgres
CONJUR_DATA_KEY:
CONJUR_AUTHENTICATORS:
depends_on:
- database
restart: on-failure
proxy:
image: nginx:1.13.6-alpine
container_name: nginx_proxy
ports:
- "8443:443"
volumes:
- ./conf/:/etc/nginx/conf.d/:ro
- ./conf/tls/:/etc/nginx/tls/:ro
depends_on:
- conjur
- openssl
restart: on-failure
...
这意味着 Conjur 在 NGINX 代理后面运行以处理 SSL,并且没有暴露在其运行的 Docker 网络外部的端口。通过此设置,您可以在本地计算机上的 https://localhost:8443
上访问 Conjur 服务器。
注意:您将需要位于 ./conf/tls/
中的 SSL 证书。由于这是一个演示环境,因此可以很容易地进行这样的测试。
方法二
如果您不关心安全性并且只是纯粹测试 REST API 端点,您可以随时删除 SSL 并修改 docker-compose.yml
以将 Conjur 服务器的端口暴露给您的本地机器,如下所示:< /p>
...
conjur:
image: cyberark/conjur
container_name: conjur_server
command: server
environment:
DATABASE_URL: postgres://postgres@database/postgres
CONJUR_DATA_KEY:
CONJUR_AUTHENTICATORS:
ports:
- "8080:80"
depends_on:
- database
restart: on-failure
现在您可以通过 http://localhost:8080
与本地机器上的 Conjur 服务器通信。