ฉันกำลังสร้างการสื่อสาร SSL ระหว่างเซิร์ฟเวอร์ pg DB และไคลเอนต์โหนด หลังจากทำตามเอกสารบางส่วนและนำไปใช้กับ opensl แล้ว การร้องเรียนของโหนด "ใบรับรองที่ลงนามด้วยตนเองในห่วงโซ่ใบรับรอง" การเพิ่มใบรับรองไปยังที่เก็บใบรับรองของ Windows ไม่ได้ช่วยอะไร
opensl สำหรับ DB Server ตาม หน้าเอกสาร:
openssl req -new -x509 -days 3650 -nodes -text -out serverdb.crt -keyout serverdb.key -subj "/CN=localhost"
การสร้างคีย์ส่วนตัว RSA
กำลังเขียนรหัสส่วนตัวใหม่ไปที่ 'serverdb.key'
openssl req -new -nodes -text -out rootdb.csr -keyout rootdb.key -subj "/CN=localhost"
การสร้างคีย์ส่วนตัว RSA
กำลังเขียนรหัสส่วนตัวใหม่ไปที่ 'rootdb.key'
openssl x509 -req -in rootdb.csr -text -days 3650 -extfile cnf\openssl.cnf -extensions v3_ca -signkey rootdb.key -out rootdb.crt
ลายเซ็นตกลง
หัวเรื่อง = CN = localhost
รับรหัสส่วนตัว
openssl req -new -nodes -text -out serverdb.csr -keyout serverdb.key -subj "/CN=localhot"
การสร้างคีย์ส่วนตัว RSA
กำลังเขียนรหัสส่วนตัวใหม่ไปที่ 'serverdb.key'
opensl x509 -req -in serverdb.csr -text -days 3650 -CA rootdb.crt -CAkey rootdb.key -CAcreateserial -out serverdb.crt
ลายเซ็นตกลง
เรื่อง = CN = localhot
รับรหัสส่วนตัวของ CA
opensl สำหรับไคลเอนต์โหนด:
opensl genrsa -des3 -out clientToDB.key 2048
การสร้างคีย์ส่วนตัว RSA โมดูลัสยาว 2048 บิต (2 ไพรม์)
//rem ลบข้อความรหัสผ่าน
opensl rsa - ใน clientToDB.key - ออก clientToDB.key
การเขียนคีย์ RSA
//rem 2.8 สร้างใบรับรอง postgresql.crt
opensl req -new -key clientToDB.key -out clientToDB.csr
...
ชื่อสามัญ (เช่น เซิร์ฟเวอร์ FQDN หรือชื่อของคุณ) []:localhost
โปรดป้อนแอตทริบิวต์ 'พิเศษ' ต่อไปนี้
ที่จะส่งพร้อมกับคำขอใบรับรองของคุณ
รหัสผ่านท้าทาย []:
ชื่อบริษัทที่ไม่บังคับ []:
// rem 2.9 ลงชื่อโดยใช้ใบรับรองหลักที่เชื่อถือได้:
opensl x509 -req -in clientToDB.csr -CA rootdb.crt -CAkey rootdb.key -out clientToDB.crt -CAcreateserial
ลายเซ็นตกลง
รับรหัสส่วนตัวของ CA
postgresql.conf
ssl = เปิด
ssl_cert_file = 'serverdb.crt'
ssl_key_file = 'เซิร์ฟเวอร์คีย์'
ssl_ciphers = 'สูง:ปานกลาง:+3DES:!aNULL'
ssl_prefer_server_ciphers = เปิด
ssl_ca_file = 'rootdb.crt'
ssl_crl_file = ''
การตั้งค่าโหนด ssl:
ssl:
{
ปฏิเสธไม่ได้รับอนุญาต: จริง // งานเท็จ
ca: fs.readFileSync("serverdb.crt").toString(),
คีย์: fs.readFileSync("clientToDB.key").toString(),
ใบรับรอง: fs.readFileSync("clientToDB.crt").toString()
}
สิ่งแวดล้อมคือ
Windows 10, pg และ node ทั้ง local, localhost
opensl v1.1.1k
โหนด v14
ไม่มีไฟร์วอลล์ของบริษัท