Tôi đã di chuyển cơ sở dữ liệu postgres của mình sang Google Cloud SQL.
Nếu không bật SSL, tôi có thể kết nối mà không gặp vấn đề gì.
Tuy nhiên, tôi đang đấu tranh để kết nối SSL hoạt động.
Tôi đang sử dụng trình điều khiển bể bơi pgx.
Tôi đã tải xuống các tệp pem máy chủ, máy khách và khóa cá nhân.
Thông báo lỗi tôi nhận được là
không thể viết thông báo khởi động (x509: chứng chỉ được ký bởi cơ quan không xác định)
serverCert, err := ioutil.ReadFile("server-ca.pem")
if err != nil {
log.Fatal(err)
}
clientCert, err := ioutil.ReadFile("client-cert.pem")
if err != nil {
log.Fatal(err)
}
caCertPool := x509.NewCertPool()
ok := caCertPool.AppendCertsFromPEM(serverCert)
ok = caCertPool.AppendCertsFromPEM(clientCert)
fmt.Println(ok)
keypair, err := tls.LoadX509KeyPair("server-client-certs.pem", "client-key.pem")
if err != nil {
log.Fatal(err)
}
tlsConfig := &tls.Config{
Certificates: []tls.Certificate{keypair},
ServerName: s.Host,
ClientCAs: caCertPool,
ClientAuth: tls.RequestClientCert,
GetClientCertificate: func(*tls.CertificateRequestInfo) (*tls.Certificate, error) {
return &keypair, nil
},
}
connectionString := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s connect_timeout=%d sslmode=require",
s.Host, s.Port, s.User, s.Password, s.Name, s.ConnectTimeout)
connConfig, err := pgxpool.ParseConfig(connectionString)
if connConfig != nil {
connConfig.ConnConfig.TLSConfig = tlsConfig
}
var pool *pgxpool.Pool
pool, err = pgxpool.ConnectConfig(context.Background(), connConfig)
Bạn có một số vấn đề với của bạn tls.Config, tôi khuyên bạn nên đọc tài liệu để hiểu những gì mỗi trường làm.
Các CertPoolnên chứa các chứng chỉ CA sử dụng để ký chứng chỉ máy chủ, đây là server-ca.pem. Nó không cần chứng chỉ khách hàng.
ClientCAslà CA pool được máy chủ sử dụng để xác minh các chứng chỉ của máy khách, nó chỉ được sử dụng ở phía máy chủ. Bạn cần chỉ định nhóm CA của bạn trong RootCAs.
Đây là nguyên nhân gây ra sự cố của bạn, máy khách của bạn đang cố gắng xác minh chứng chỉ máy chủ nhưng không biết CA của nó.
ClientAuth là trường phía máy chủ được sử dụng để thực thi một hành vi chứng chỉ máy khách cụ thể, nó không có hiệu lực khi được đặt ở phía máy khách.
GetClientCertificatelà không cần thiết miễn là Certificatesđược thiết lập, bạn chỉ có thể loại bỏ nó.
Bạn cũng nên kiểm tra kỹ chứng chỉ khách hàng của mình. Bạn đang tải cặp khóa server-client-certs.pem/ client-key.pem. Nếu đây thực sự là chứng chỉ và khóa ứng dụng khách, thì bạn sẽ ổn.
Giả sử bạn có thể kết nối với máy chủ cơ sở dữ liệu (được liệt kê trong tường lửa), các chứng chỉ của bạn đều đúng (chứng chỉ CA cho máy chủ, chứng chỉ máy khách và khóa máy khách), các sửa chữa được liệt kê ở đây sẽ cho phép bạn kết nối.
Sau tất cả những điều này, mã của bạn sẽ trở thành:
caCertPool := x509.NewCertPool()
ok := caCertPool.AppendCertsFromPEM(serverCert)
fmt.Println(ok)
keypair, err := tls.LoadX509KeyPair("server-client-certs.pem", "client-key.pem")
if err != nil {
log.Fatal(err)
}
tlsConfig := &tls.Config{
Certificates: []tls.Certificate{keypair},
ServerName: s.Host,
RootCAs: caCertPool,
}
Lưu ý cuối cùng: server-ca.pemkhông phải là chứng chỉ máy chủ, mà là chứng chỉ CA được sử dụng để ký chứng chỉ máy chủ. Máy khách sẽ không biết trước chứng chỉ máy chủ, nó sẽ nhận nó trong quá trình bắt tay TLS.
Jana Duggar đã cởi mở về việc tìm kiếm tình yêu của mình. Đây là tất cả những gì cô ấy nói về chủ đề này và khoảng thời gian 5 năm kết hôn của cô ấy.
Ngôi sao của 'Outlander' Sam Heu Afghanistan gần đây đã tiết lộ những gì anh ấy sẽ làm từ phim trường để tưởng nhớ Jamie Fraser, vai diễn đã đưa anh ấy trở thành một ngôi sao.
"She Loves You" được viết trong một giờ, thu âm trong một ngày và là bài hát của The Beatles với một trong những màn trình diễn xuất sắc nhất trong sự nghiệp của họ.
Dolly Parton và bà Bessie của cô ấy có một mối quan hệ đặc biệt. Bà Parton ốm nặng, nhưng điều đó không ngăn được Dolly chơi khăm bà.
Bạn có thể nghĩ rằng gỗ sồi hoặc gỗ hồ đào rất cứng, nhưng khi nói đến loại gỗ cứng nhất thế giới thì chúng thậm chí còn không có loại nào sánh bằng.
Đại dương tràn ngập vẻ đẹp, nhưng cũng ẩn chứa một số sinh vật biển đáng sợ nhất hành tinh. Nhiều loài trong số này ẩn núp sâu dưới bề mặt đại dương, trong thế giới tối tăm, áp suất cao của biển sâu.
Nếu bạn đang chiến đấu với quái vật hung hãn hoặc chuẩn bị cho các tình huống PvP, việc nắm rõ những phép thuật kiếm tốt nhất trong Minecraft có thể mang lại cho bạn lợi thế lớn. Phép thuật kiếm cho phép bạn gây nhiều sát thương hơn, tăng lượng quái vật rơi ra và kéo dài độ bền của kiếm.
Khi nói đến các nước xã hội chủ nghĩa, người ta thường hình dung ra sự kiểm soát hoàn toàn của chính phủ và không có sở hữu tư nhân. Nhưng trên thực tế, các nền kinh tế xã hội chủ nghĩa rất khác nhau.
“Những đứa trẻ” tung dàn khách mời tên tuổi và nhiều tin tức chấn động
Chiếc RAV4 này được khẳng định là ở tình trạng tuyệt vời và được chuẩn bị cho một trò chơi ghế âm nhạc.
Cảnh quay từ máy bay không người lái đã ghi lại cảnh lính cứu hỏa dường như đang cố gắng dập tắt ngọn lửa.
Eyes of Wakanda liên kết trực tiếp với MCU, cùng với các cập nhật về X-Men '97, What If..., Daredevil, v.v.
Marilyn Monroe đã mặc một chiếc váy trắng nổi tiếng trong bộ phim 'The Seven Year Itch'. Sau đây là mọi thông tin cần biết về chiếc váy và khoảnh khắc mang tính biểu tượng của Monroe trên song sắt tàu điện ngầm.
John Cleese kết hôn với vợ mình, Jennifer Wade, vào năm 2012. Sau đây là mọi thông tin cần biết về vợ của John Cleese, Jennifer Wade.
Patton Oswalt kết hôn với vợ mình, nữ diễn viên Meredith Salenger, vào năm 2017. Sau đây là mọi thông tin cần biết về vợ của Patton Oswalt, Meredith Salenger.
Michael C. Hall đã kết hôn với vợ Morgan Macgregor từ năm 2016. Dưới đây là tất cả những điều cần biết về vợ của Michael C. Hall.
Nó đập vào mắt tôi Đột ngột như nó thường xảy ra Nó lại ở giữa chừng <Không, không phải cái ở Thái Bình Dương đâu bạn màu hạt dẻ, cái ở lễ hội hóa trang> Mọi tiêu đề đều ầm ĩ…..
Vào năm 2022, với việc phát hành GPT-3, kỹ năng viết dường như trở nên ít quan trọng hơn. Với AI, những người viết kém cũng có thể tạo ra đội ngũ nhân viên chất lượng.
Trong thế giới có nhịp độ nhanh và cạnh tranh ngày nay, sự nghiệp của một người đóng một vai trò quan trọng trong sự phát triển cá nhân, ổn định tài chính và sự hài lòng trong cuộc sống nói chung. Tuy nhiên, nhiều cá nhân thấy mình bị mắc kẹt trong một chu kỳ trì trệ và không hài lòng không ngừng, dần dần lãng phí trong cuộc sống nghề nghiệp của họ.
Tuần trước, tôi nhận thấy một thông cáo báo chí, được gửi qua PressGazette (một trang web tin tức truyền thông của Anh). Bài báo thông báo rằng Acast, công ty quảng cáo và lưu trữ podcast của Scandi, sẽ lãnh đạo một tập đoàn gồm các nhà xuất bản “có lẽ là có ảnh hưởng nhất” trong lĩnh vực podcasting.