Trình tạo chứng chỉ SSL
Thông tin định danh
Chứng chỉ
Khóa riêng (giữ bí mật!)
Chứng chỉ tự ký mặc định không được trình duyệt tin cậy: chỉ dùng cho phát triển cục bộ, kiểm thử hoặc mạng riêng.
Tạo một chứng chỉ tự ký cho phát triển cục bộ hoặc thử nghiệm nội bộ, ngay trong trình duyệt của bạn. Bạn chọn kích thước khóa RSA (2048, 3072 hoặc 4096 bit), Common Name, các Subject Alternative Names, khoảng hiệu lực và thông tin cơ bản của tổ chức. Chứng chỉ và khóa riêng của nó được tạo trong trình duyệt và không bao giờ gửi tới máy chủ của chúng tôi, và bạn tải cả hai về dưới dạng tệp PEM sẵn sàng cho Nginx hoặc Apache.
Cách tạo chứng chỉ hoạt động
-
1
Chọn kích thước khóa RSA
2048 bit đủ cho hầu hết thử nghiệm; 3072 hoặc 4096 cho khóa lớn hơn nhưng đổi lại tốc độ.
-
2
Nhập chủ thể và SAN
Common Name cùng mọi tên host hoặc IP mà chứng chỉ cần bao phủ (trình duyệt hiện đại bỏ qua CN và dùng SAN).
-
3
Tạo trong trình duyệt
Một chứng chỉ tự ký được tạo và ký bằng khóa riêng tương ứng, tất cả cục bộ trong trình duyệt của bạn.
-
4
Tải kết quả về
Một chứng chỉ mã hóa PEM (`cert.pem`) và khóa riêng dạng PEM (`key.pem`), sẵn sàng cài đặt.
Mọi thứ diễn ra trong trình duyệt của bạn
Trình tạo này chạy hoàn toàn trong trình duyệt của bạn. Cặp khóa RSA được tạo cục bộ bằng một thư viện mật mã JavaScript, chứng chỉ được ký ngay trên thiết bị của bạn, và cả khóa riêng lẫn chứng chỉ đều không bao giờ được tải lên máy chủ của chúng tôi. Dù vậy, hãy coi khóa riêng như một bí mật: bất kỳ ai có nó đều có thể mạo danh chứng chỉ.
Tự ký nghĩa là gì
Bạn vừa là đơn vị cấp vừa là chủ thể: chứng chỉ được ký bằng chính khóa riêng của nó, nên không có tổ chức chứng thực (CA) công khai nào bảo chứng. Vì thế trình duyệt hiển thị cảnh báo. Nó phù hợp cho thử nghiệm, phát triển cục bộ (localhost, dev.local) và máy chủ nội bộ nơi bạn có thể phân phối chứng chỉ tới các máy khách cần tin cậy nó.
Nếu bạn cần một chứng chỉ mà internet công khai tin cậy, công cụ này không phải bước phù hợp: bạn cần một chứng chỉ do CA ký (ví dụ từ Let’s Encrypt hoặc một CA trả phí), điều này đòi hỏi một yêu cầu ký chứng chỉ (CSR) và xác thực tên miền mà công cụ trong trình duyệt này không thực hiện.
Chứng chỉ chứa những gì
| Trường | Ghi chú |
|---|---|
| Chủ thể (CN, O, C) | Common Name, Tổ chức, Quốc gia |
| Subject Alternative Names | Mọi miền hoặc IP được bao phủ (quan trọng!) |
| Khóa công khai | RSA, dẫn xuất từ khóa riêng đã tạo |
| Đơn vị cấp | Trùng với chủ thể, vì là tự ký |
| Hiệu lực | Not Before / Not After (số ngày hiệu lực của bạn) |
| Key Usage | digitalSignature, keyEncipherment |
| Extended Key Usage | serverAuth, clientAuth |
| Basic Constraints | CA:FALSE (chứng chỉ lá, không phải CA) |
Tệp đầu ra
key.pem, khóa riêng (hãy bảo vệ, chế độ 0600)cert.pem, chứng chỉ tự ký (công khai, có thể phân phối)
Cho Nginx
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/ssl/certs/cert.pem;
ssl_certificate_key /etc/ssl/private/key.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
}
Cho Apache 2.4+
<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/cert.pem
SSLCertificateKeyFile /etc/ssl/private/key.pem
</VirtualHost>
Tin cậy chứng chỉ trên máy của chính bạn
Để tắt cảnh báo trình duyệt trên một máy do bạn kiểm soát, hãy nhập cert.pem vào kho tin cậy của hệ thống hoặc trình duyệt đó. Chỉ làm điều này với chứng chỉ do chính bạn tạo, trên thiết bị thuộc về bạn. Các công cụ như mkcert tự động hóa một CA cục bộ cho nhiều dịch vụ; trình tạo này tạo một chứng chỉ tự ký mỗi lần.
Chứng chỉ tự ký không phù hợp cho việc gì
- Website công khai. Người dùng thấy cảnh báo, và nhiều người rời đi.
- Tích hợp API bên thứ ba. Hầu hết máy khách từ chối đơn vị cấp lạ.
- Môi trường sản xuất. Tuyệt đối không. Dùng Let’s Encrypt (miễn phí) hoặc một CA trả phí cho mọi thứ trên internet mở.
Câu hỏi thường gặp
Không. Cặp khóa và chứng chỉ được tạo trong trình duyệt của bạn và ở lại thiết bị của bạn; không có gì được tải lên. Dù vậy, hãy giữ kín tệp key.pem đã tải về, vì bất kỳ ai có nó đều có thể mạo danh chứng chỉ.
Không, nếu bên thứ ba sẽ kết nối. Trình duyệt hiển thị cảnh báo rõ rệt. Hãy dùng chứng chỉ do CA ký, miễn phí (Let’s Encrypt, ZeroSSL) hoặc trả phí. Chứng chỉ tự ký ổn cho giao tiếp máy-với-máy trong mạng nội bộ nơi bạn kiểm soát cả hai đầu.
Trước đây CN chứa miền chính. Trình duyệt hiện đại bỏ qua CN khi xác thực host và chỉ dùng SAN. Luôn đặt mọi tên host vào SAN; chỉ đặt CN là miền chính để nhận diện dễ đọc.
Có, đặt *.example.com vào SAN. Nó bao phủ một cấp tên miền phụ. Với nhiều cấp, hãy thêm nhiều ký tự đại diện (*.example.com và *.dev.example.com).
Công cụ liên quan
Bộ mã hóa mật mã Caesar
Mã hóa và giải mã văn bản bằng mật mã Caesar. Hỗ trợ mọi độ dịch 1-25, có ROT13 như một trường hợp đặc biệt, giữ nguyên dấu câu và chữ hoa/thường.
Mã hóa / giải mã AES
Mã hóa và giải mã văn bản rủi ro thấp bằng các cipher AES của OpenSSL. Cụm mật khẩu được băm SHA-256 và đầu ra Base64 gồm IV cộng bản mã.
Trình tạo bcrypt
Tạo hash bcrypt từ mật khẩu plaintext. Tùy chỉnh cost factor từ 4 đến 13, tương thích với Laravel, Django, Node và PHP.
Bộ mã hóa và giải mã Base32
Mã hóa và giải mã chuỗi Base32 bằng bảng chữ cái RFC 4648. Hữu ích cho TOTP secrets, token không phân biệt hoa thường và mã định danh do người nhập.
Bộ mã hóa và giải mã Base85
Mã hóa và giải mã Base85 theo biến thể Adobe Ascii85, biến thể dùng bên trong tệp PostScript và PDF. Gọn hơn Base64 cho dữ liệu nhị phân.
Trình tạo hash bcrypt
Tạo hash bcrypt hoặc verify mật khẩu plaintext với hash bcrypt hiện có. Chế độ tạo và verify đặt cạnh nhau trong một công cụ.