Tôi đang tạo giao tiếp SSL giữa Máy chủ pg DB và máy khách nút. Sau khi làm theo một số tài liệu và triển khai với openssl, nút khiếu nại "chứng chỉ tự ký trong chuỗi chứng chỉ". Thêm chứng chỉ vào cửa hàng chứng chỉ của Windows không giúp được gì.
openssl cho Máy chủ DB dựa trên tài liệu pg:
openssl req -new -x509 -days 3650 -nodes -text -out serverdb.crt -keyout serverdb.key -subj "/CN=localhost"
Tạo khóa riêng RSA
viết khóa riêng mới vào 'serverdb.key'
openssl req -new -nodes -text -out rootdb.csr -keyout rootdb.key -subj "/CN=localhost"
Tạo khóa riêng RSA
viết khóa riêng mới vào 'rootdb.key'
openssl x509 -req -in rootdb.csr -text -days 3650 -extfile cnf\openssl.cnf -extensions v3_ca -signkey rootdb.key -out rootdb.crt
Chữ ký ok
chủ đề = CN = máy chủ cục bộ
Nhận khóa riêng
openssl req -new -nodes -text -out serverdb.csr -keyout serverdb.key -subj "/CN=localhot"
Tạo khóa riêng RSA
viết khóa riêng mới vào 'serverdb.key'
openssl x509 -req -in serverdb.csr -text -days 3650 -CA rootdb.crt -CAkey rootdb.key -CAcreateserial -out serverdb.crt
Chữ ký ok
chủ đề=CN = localhot
Nhận khóa riêng của CA
openssl cho máy khách nút:
openssl genrsa -des3 -out clientToDB.key 2048
Tạo khóa riêng RSA, mô đun dài 2048 bit (2 số nguyên tố)
// rem xóa cụm mật khẩu
openssl rsa -in clientToDB.key -out clientToDB.key
viết khóa RSA
//rem 2.8 Tạo chứng chỉ postgresql.crt.
openssl req -new -key clientToDB.key -out clientToDB.csr
...
Tên chung (ví dụ: FQDN của máy chủ hoặc tên CỦA BẠN) []:localhost
Vui lòng nhập các thuộc tính 'thêm' sau
được gửi cùng với yêu cầu chứng chỉ của bạn
Mật khẩu thử thách []:
Tên công ty tùy chọn []:
//rem 2.9 Ký tên bằng chứng chỉ gốc đáng tin cậy:
openssl x509 -req -in clientToDB.csr -CA rootdb.crt -CAkey rootdb.key -out clientToDB.crt -CAcreateserial
Chữ ký ok
Nhận khóa riêng của CA
postgresql.conf
ssl = bật
ssl_cert_file = 'serverdb.crt'
ssl_key_file = 'serverdb.key'
ssl_ciphers = 'CAO:TRUNG BÌNH:+3DES:!aNULL'
ssl_prefer_server_ciphers = bật
ssl_ca_file = 'rootdb.crt'
ssl_crl_file = ''
cài đặt ssl của nút:
ssl:
{
rejectUnauthorized: true, // false hoạt động
ca: fs.readFileSync("serverdb.crt").toString(),
khóa: fs.readFileSync("clientToDB.key").toString(),
chứng chỉ: fs.readFileSync("clientToDB.crt").toString()
}
Môi trường là
Windows 10, pg và nút cả cục bộ, máy chủ cục bộ
openssl v1.1.1k
nút v14
không có tường lửa của công ty