首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Go api连接到Redshift时出现SSL错误

从Go api连接到Redshift时出现SSL错误
EN

Stack Overflow用户
提问于 2018-11-28 16:32:19
回答 2查看 198关注 0票数 0

我有以下go代码:

代码语言:javascript
复制
func NewConnection(connectionString string) (*sql.DB, error) {
    db, err := sql.Open("postgres", connectionString)
    if err := db.Ping(); err != nil {
        log.Panic(err)
    }
    return db, err
}

和以下Dockerfile:

代码语言:javascript
复制
# Build env
FROM golang:alpine AS build

ARG stage

RUN apk update && apk upgrade && \
  apk add --no-cache bash git openssh build-base && \
  go get -u golang.org/x/vgo

ADD . /src
WORKDIR /src

RUN vgo mod init && vgo install ./...&& vgo build -o service

# Runtime env
FROM alpine

ARG stage

RUN apk update && apk add --no-cache ca-certificates openssl openssl-dev
WORKDIR /app

COPY --from=build /src/${stage}-env.yml /app/
COPY --from=build /src/service /app/

ENV CONFIG_PATH=.

ENTRYPOINT ./service

我的NewConnection函数从队列中检索一个红移连接字符串,以及一些数据。当我在postgres容器上测试时,它们都在本地工作。但是,当我部署我的服务时,我得到以下错误:

代码语言:javascript
复制
panic: pq: parameter "ssl" cannot be changed after server start

我的连接包含?ssl=true,它应该是SSL,我们正在从AWS中的Fargate服务连接到AWS Redshift等。所以我认为这个问题可能与我的高山容器中缺少ssl依赖项,或者缺少证书或类似的东西有关。

EN

回答 2

Stack Overflow用户

发布于 2018-11-28 19:31:38

无需SSL加密即可建立DB连接,如下所示:

代码语言:javascript
复制
db, err := sql.Open("postgres", "user=test password=test dbname=test sslmode=disable") 
票数 0
EN

Stack Overflow用户

发布于 2018-11-28 19:44:01

我想出了这一点,我们使用的连接字符串有ssl=true,它适用于nodejs中的库,但在Go中它应该是sslmode=require。我对此进行了检查,并替换了字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53515162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档