postgresql - 如何使用 SSL/TLS 在 CircleCI 中运行 PostgreSQL?

标签 postgresql ssl tls1.2 circleci

在 CircleCI 中,我想运行访问 PostgreSQL 数据库的测试,但我想使用 SSL/TLS(带有自签名证书)连接到它。

理想情况下,它将使用默认的 CircleCI PostgreSQL 镜像,使用 Docker 执行器运行,不需要任何卷设置或需要将任何内容复制到容器中。

我该怎么做?

最佳答案

您可以在 .circleci/config.yml 文件中包含以下内容。它会覆盖启动 bash 的入口点,然后在运行原始入口点之前,在 bash 中生成自签名证书和私钥。

version: 2
jobs:
  build:
    docker:
      - image: python:3.8.7
      - image: circleci/postgres:13.0
        environment:
          POSTGRES_PASSWORD: password
        entrypoint: bash
        command: >
          -c '
            openssl req -nodes -new -x509 -subj "/CN=localhost" -keyout server.key -out server.crt &&
            chown postgres server.key &&
            chmod 600 /server.key &&
            exec /docker-entrypoint.sh -c ssl=on -c ssl_cert_file=/server.crt -c ssl_key_file=/server.key
          '

第一个 图像: 是运行测试的图像,在本例中它是一个 Python 图像,但应该能够替换为您选择的图像

关于postgresql - 如何使用 SSL/TLS 在 CircleCI 中运行 PostgreSQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65681706/

相关文章:

java - 缓解 Java 中针对 https 请求的 session 劫持

java - 将自定义信任库添加到 java 中的 imaps

curl - 库伯斯。 HTTPS API 返回 `Unauthorized`

postgresql 加密/解密

encryption - openssl ssl 加密

c# - 如何将 SslStream/AuthenticateAsServer 与自签名证书/ key 一起使用?

java - 带有 CA 签名证书的 2 路 TLS

sql - 用 SQL 替换错误的编码字母

postgresql - Postgres 横向连接多个表以限制结果

具有未知名称的 PostgreSQL 删除约束