我在 node.js 中创建了一个项目来存储和从cyberark conjur 获取凭据(使用它的 REST-API)但是为了测试应用程序,我在设置 conjur 服务器时遇到了困难。
问题是服务器在 docker 容器中运行良好,但是如何在外部(主机)访问它(端口映射不起作用)
或者是否有任何托管在 Internet 上的 conjur 服务器供公众使用
我想要的只是测试 API 调用
在撰写本文时,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/
. 由于这是一个演示环境,因此可以随时进行此类测试。
方法二
如果您不关心安全性并且只是单纯地测试 REST API 端点,您可以随时删除 SSL 并修改docker-compose.yml
以将 Conjur 服务器的端口公开给您的本地计算机,如下所示:
...
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
.