Xin chào, tôi vừa gặp sự cố này khi đang cố gắng sử dụng chứng chỉ do Let's Encrypt cấp cho MongoDB. Tài liệu của MongoDB nói rằng
Tên phân biệt [ DN
], được tìm thấy trong chứng chỉ thành viên của subject
, phải chỉ định một giá trị không trống cho ít nhất một trong các thuộc tính sau
- Tổ chức [
O
] - đơn vị tổ chức [
OU
] - Thành phần Miền [
DC
]
Tôi hiểu rằng Let's Encrypt CA không thể xác minh O
hoặc OU
nhưng có thể cung cấp DC
theo một cách nào đó. Mặt khác, tôi không biết cách sử dụng chứng chỉ do Let's Encrypt CA cấp cho việc triển khai MongoDB của mình. Tôi đang sử dụng certbot để tự động hóa quy trình phát hành chứng chỉ của mình
Hầu hết thời gian, mọi người nghĩ về việc sử dụng chứng chỉ Let's Encrypt để mã hóa giao tiếp giữa trang web và máy chủ. Nhưng các kết nối cần TLS ở khắp mọi nơi. Để chúng tôi có một Internet được mã hóa 100%, chúng tôi cần nghĩ xa hơn về trang web
Dịch vụ cơ sở dữ liệu đa đám mây được quản lý của MongoDB, được gọi là Atlas, sử dụng chứng chỉ Let's Encrypt để bảo mật kết nối giữa ứng dụng của khách hàng với cơ sở dữ liệu MongoDB và giữa các điểm dịch vụ bên trong nền tảng. Chúng tôi đã nói chuyện với Kenn White, Giám đốc bảo mật tại MongoDB, về cách nhóm của anh ấy sử dụng chứng chỉ Let's Encrypt cho hơn hai triệu cơ sở dữ liệu, trên 200 trung tâm dữ liệu và ba nhà cung cấp đám mây
"Let's Encrypt đã trở thành một phần cốt lõi trong cơ sở hạ tầng của chúng tôi," Kenn nói. Thật thú vị, mối quan hệ của chúng tôi đã không bắt đầu theo cách đó. MongoDB đã trở thành nhà tài trợ tài chính của Let's Encrypt nhiều năm trước đó chỉ đơn giản là để hỗ trợ sứ mệnh theo đuổi bảo mật và quyền riêng tư của chúng tôi. MongoDB Atlas bắt đầu cất cánh và rõ ràng TLS sẽ tiếp tục là ưu tiên hàng đầu khi họ mang đến những khách hàng như sàn giao dịch tiền tệ, nền tảng ngân quỹ và mạng thanh toán bán lẻ. "Toàn bộ khái niệm tự động hóa cao và không có sự can thiệp của con người đều thực sự hấp dẫn chúng tôi," Kenn cho biết về quyết định sử dụng Let's Encrypt của MongoDB
Danh sách khách hàng đa dạng của MongoDB có nghĩa là họ hỗ trợ nhiều ngôn ngữ, thư viện và hệ điều hành. Do đó, giám sát của họ là khá mạnh mẽ. Trong những năm qua, MongoDB đã trở thành một tài nguyên hữu ích cho các kỹ sư của Let's Encrypt để xác định các lỗi triển khai trường hợp cạnh. Khả năng xác định sớm các vấn đề chính xác của họ giúp chúng tôi phản hồi hiệu quả;
Việc chia sẻ thông tin cởi mở là một phần cốt lõi trong cách hoạt động của Let's Encrypt. Trên thực tế, "minh bạch" là một trong những nguyên tắc hoạt động chính của chúng tôi. Khả năng xem và hiểu cách Let's Encrypt đang thay đổi đã giúp MongoDB có được niềm tin và sự tự tin trong các hoạt động của chúng tôi. "Tôi không nghĩ rằng bạn thực sự có thể đánh giá cao trải nghiệm mà chúng tôi đã có khi làm việc với nhóm kỹ thuật của Let's Encrypt," Kenn nói. "Một điều mà tôi đánh giá cao về Let's Encrypt là bạn luôn cực kỳ minh bạch về các ưu tiên và tầm nhìn lộ trình của mình. Về mặt công nghệ và phép đo từ xa của bạn, đây là một sự phát triển; . Và hai năm trước, bạn đã vượt lên trên hầu hết mọi đồng nghiệp trong ngành. "
Xem các bài đăng trên blog khác trong loạt bài này về cách những người đăng ký lớn khác sử dụng chứng chỉ Let's Encrypt
TLS Đơn giản và Tự động cho Khách hàng Đám mây Lớn nhất Châu Âu
Tốc độ ở quy mô. Let's Encrypt phục vụ Shopify's 4. 5 triệu tên miền
Hỗ trợ Let's Encrypt
Là một dự án phi lợi nhuận, 100% kinh phí của chúng tôi đến từ sự đóng góp từ cộng đồng người dùng và những người ủng hộ của chúng tôi. Chúng tôi phụ thuộc vào sự hỗ trợ của họ để cung cấp dịch vụ của chúng tôi vì lợi ích công cộng. Nếu công ty hoặc tổ chức của bạn muốn tài trợ cho Let's Encrypt, vui lòng gửi email cho chúng tôi theo địa chỉ Sponsor@letsencrypt. tổ chức. Nếu bạn có thể hỗ trợ chúng tôi bằng một khoản quyên góp, chúng tôi yêu cầu bạn đóng góp cá nhân
2020-10-29T09. 29. 40. 764+0000 I REPL_HB [replexec-1] Lỗi nhịp tim [requestId. 555] thành “tên máy chủ”. 27017, trạng thái phản hồi. Không được phép. không được quản trị viên cho phép thực thi lệnh { replSetHeartbeat. “repl-01”, phiên bản cấu hình. 1, hbv. 1, từ. “tên máy chủ. 27017”, từId. 0, thuật ngữ. 27, $replData. 1, $clusterTime. { clusterTime. Dấu thời gian[1603880275, 1], chữ ký. {băm. BinData[0, 6775444445555FB8F9AEC2FE5566A791EAD5C1824], keyId. 6886403334444455553 } }, $db. "quản trị viên" }
Chứng chỉ này hoạt động tốt đối với xác thực ứng dụng khách, nhưng không hoạt động đối với xác thực thành viên nội bộ
Cấu hình
net:
port: 27017
bindIp: 127.0.0.1,10.0.0.4
ssl:
mode: requireSSL
CAFile: /etc/ssl/ca.pem
PEMKeyFile: /etc/ssl/mongodb.pem
clusterCAFile: /etc/ssl/ca.pem
clusterFile: /etc/ssl/mongodb.pem
allowConnectionsWithoutCertificates: true
security:
clusterAuthMode: x509
Đầu ra từ db quản trị MongoDB
db.serverStatus[].security
{
"SSLServerSubjectName" : "CN=hostname",
"SSLServerHasCertificateAuthority" : true,
"SSLServerCertificateExpirationDate" : ISODate["2021-01-24T10:37:32Z"]
}
Tôi biết rằng clusterCAFile và clusterFile là các tham số chung trong trường hợp nếu đã sử dụng CAFile, PEMKeyFile, nhưng chỉ trong trường hợp thử đặt chúng cũng