Câu trả lời ngắn gọn của tôi cho câu hỏi của tôi là: Yabadabbadooh.... có thể và hoạt động trên hệ thống dự phòng của tôi!
Nó không cho phép tôi ngủ, vì vậy tôi bắt đầu lại từ đầu:
Đầu tiên, tôi kiểm tra lại các chứng chỉ cũ và mới xem có sự khác biệt nào không, điểm khác biệt duy nhất là thứ tự khác nhau trong chủ đề, nhưng nội dung giống nhau.
#1
Vì vậy, tôi đã tạo một root.crt và server.crt mới với rootCa.key cũ và server.key cũ với thứ tự chủ đề giống hệt nhau.
Bây giờ đầu ra văn bản giống hệt nhau (chủ đề, Thuật toán chữ ký....)
#2
Tôi đã tạo một userCert mới với root.crt.
#3
Tôi đã cài đặt các chứng chỉ trong Postgres và đã thử nghiệm -> hoạt động.
#4
lần này tôi bắt đầu với các chứng chỉ mới ở trên cùng.
mèo root_old.crt >> root.crt
mèo server_old.crt >> server.crt
mèo server_old.key >> server.key
khởi động lại postgres ...... VÀ bây giờ các chứng chỉ cũ và mới đang hoạt động!
#5
Kiểm tra theo cách khác xung quanh sao chép các chứng chỉ cũ qua hợp nhất và sau đó:
mèo root_new.crt >> root.crt
mèo server_new.crt >> server.crt
mèo server_new.key >> server.key
khởi động lại postgres ...... và nó không còn hoạt động nữa. Quay lại bước 4, tất cả đã hoạt động tốt trở lại.
#6
Danh sách thu hồi: Tôi đã tạo danh sách thu hồi cho các chứng chỉ mới và cài đặt nó trong postgres. sau đó:
mèo root_old.crl >> root.crl
bỏ ghi chú Dòng: ssl_crl_file = /root.crl
khởi động lại postgres ......VÀ tất cả đều hoạt động tốt.
Tôi không biết tại sao nó lại hoạt động bây giờ, tôi thực sự không thể tin được thứ tự chủ đề của nó... đoán rằng tôi đã làm sai điều gì đó khác trong lần thử đầu tiên. Nhưng tôi sẽ không cố gắng tìm hiểu, nó hoạt động và đó là nó :-)
Phần kết luận:
Tạo root.crt (CA) và server.crt bằng các khóa cũ và giống hệt nhau nhất có thể. (kiểm tra chủ đề và như vậy)
Hợp nhất các chứng chỉ, danh sách thu hồi và khóa để những cái cũ nằm ở cuối tệp
Bây giờ các chứng chỉ cũ đang hoạt động cho đến khi chúng hết hạn và bạn có thể tạo chứng chỉ mới (với CA mới) với Tls được nâng cấp chẳng hạn.
Một số thông tin bổ sung về Phiên bản Tls.
Khi tôi nâng cấp máy chủ của mình lên Ubuntu 2104 và Postgres 13, Chứng chỉ không hoạt động. Tôi đã tìm thấy gợi ý để thêm dòng này vào /etc/ssl/openssl.conf
Giao thức tối thiểu = TLSv1.0
Tôi biết điều này là không tốt, nhưng đã giúp cho thời điểm này. Tôi không tìm được cách kiểm tra xem chứng chỉ có phải là Tlsv1.0 trở lên hay không. Thử nghiệm duy nhất nếu TlsV1.2 của nó đang sử dụng pgsql (13) hoặc pgadmin4, cả hai sẽ không hoạt động với TlsV1.0
Vì vậy, trong tệp cấu hình của tôi để tạo chứng chỉ, tôi sử dụng tệp này:
MinProtocol = TLSv1.2
psql (13) và pgadmin4 hiện hoạt động với các chứng chỉ mới. Khi tất cả những cái cũ hết hạn, tôi sẽ thay đổi lại /etc/ssl/openssl.conf thành giá trị đó.
Nâng cấp lên phiên bản Tls tiếp theo đã bị mất ngòi :-)