Công cụ tạo CSR

Tạo một yêu cầu ký chứng chỉ và khóa riêng đi kèm ngay trên trang này. Cặp khóa do Web Crypto của chính trình duyệt tạo ra và không bao giờ rời khỏi máy của bạn: không có gì bạn gõ và không có khóa nào được gửi đến máy chủ của chúng tôi hay của bất kỳ ai khác.

RSA 2048/3072/4096 · ECDSA P-256/P-384/P-521 · Ed25519 · tạo bằng Web Crypto ngay trong trình duyệt, không tải lên
Loại khóa

Lựa chọn mặc định hợp lý: mạnh ngang RSA 3072 mà nhỏ hơn nhiều.

Chứng chỉ dành cho aiKhông bắt buộc với hầu hết chứng chỉ

Tên pháp lý của tổ chức bạn, đúng như đã đăng ký.

Hãy viết đầy đủ thay vì viết tắt.

Hai chữ cái, mã ISO 3166-1.

Những gì cần xinCA công khai đặt các mục này theo hồ sơ riêng của mình. CA riêng có thể muốn bạn xin chúng.
Mục đích sử dụng khóa
Mục đích sử dụng khóa mở rộng

Chỉ khi CA của bạn yêu cầu. SCEP dùng nó khi đăng ký; đơn đặt chứng chỉ web thì không.

Cặp khóa do trình duyệt của bạn tạo ra và không bao giờ được gửi đi đâu.

Gửi tệp nàyYêu cầu ký chứng chỉĐược tạo ngay trong trình duyệt này khi bạn bấm nút
Giữ tệp nàyKhóa riêngĐược tạo ngay trong trình duyệt này khi bạn bấm nút

Những gì bạn sắp gửiECDSA P-256 · SHA-256

ECDSA P-256Được tạo ngay trong trình duyệt này khi bạn bấm nút
Tổ chức cấp chứng chỉ sẽ nghĩ gì về nó

Gõ một tên hoặc thử một mẫu, và cột này sẽ cho thấy tổ chức cấp chứng chỉ sẽ làm gì với yêu cầu — trước khi nó được tạo.

Cặp khóa do Web Crypto của trình duyệt bạn tạo ra, trong một khung không thể kết nối đi đâu, và không bao giờ được gửi đi. Hãy mở bảng điều khiển mạng và quan sát.

Công cụ tạo CSR là gì?

Nó tạo ra hai tệp: một yêu cầu ký chứng chỉ (CSR) để gửi cho tổ chức cấp chứng chỉ, và khóa riêng ở lại với bạn. Yêu cầu mang khóa công khai của bạn và các tên bạn muốn được chứng nhận, được ký bằng khóa riêng.

Định dạng là PKCS#10, được ghi trong RFC 2986. Bên trong yêu cầu có tên chủ thể, khóa công khai của bạn, một tập thuộc tính mang các tên thay thế, và một chữ ký tạo bằng khóa riêng của bạn trên toàn bộ phần đó. Chữ ký tự ký ấy là bằng chứng sở hữu: nó cho thấy người gửi đang giữ khóa mà chứng chỉ sẽ được cấp cho.

Hai tệp không thể thay thế cho nhau. Yêu cầu sinh ra để được gửi đi — cho một CA, trong một phiếu hỗ trợ, ở bất cứ đâu. Khóa riêng thì không bao giờ. Trên trang này, khóa được tạo và giữ trong trình duyệt của bạn. Bạn vẫn phải tin vào mã của trang, như với mọi công cụ web, nhưng bạn có thể kiểm tra nó gửi gì: hãy mở bảng điều khiển mạng và quan sát khi bạn tạo một cái.

Hai tệp, được tạo cùng nhauRFC 2986 · PKCS #8

Khóa riêngGiữ tệp này

-----BEGIN PRIVATE KEY-----
  • Nửa riêngKý yêu cầu bây giờ, và mọi kết nối đến máy chủ của bạn sau này
  • Nửa công khai của nóĐược sao chép vào yêu cầu

Một bản, trên máy của bạn

Yêu cầu ký chứng chỉGửi tệp này

-----BEGIN CERTIFICATE REQUEST-----
  1. Tên chủ thể108 byteKhông bắt buộc với hầu hết chứng chỉ
  2. Khóa công khai của bạn294 byteTrường duy nhất mà tổ chức cấp chứng chỉ chắc chắn dùng
  3. Các tên bạn đã xin60 byteCác tên thay thế, được mang trong một thuộc tính
  4. Chữ ký261 byteDo khóa riêng tạo, trên mọi thứ phía trên nó

Nó không chứa bí mật nào

Một yêu cầu thật, tổng cộng 749 byte, bên cạnh khóa đã tạo ra nó. Chỉ yêu cầu mới cần rời khỏi máy của bạn: nó chứa nửa công khai của khóa, và một chữ ký mà chỉ nửa riêng mới tạo được.
Công cụ tạo CSR: các trường chủ thể, các tên thay thế và yêu cầu ký chứng chỉ đã hoàn tất cùng khóa của nóCông cụ tạo CSR: các trường chủ thể, các tên thay thế và yêu cầu ký chứng chỉ đã hoàn tất cùng khóa của nóCác tênCác tên máy chủ mà chứng chỉ cần bao phủ. Tên đầu tiên trở thành tên chung; những tên còn lại đi cùng nó.KhóaRSA hoặc một đường cong elliptic. Cặp khóa do trình duyệt của bạn tạo ra ngay trước mắt bạn.Bạn là aiCác trường chủ thể. CA công khai tự xác thực những trường này, nên chỉ một vài trường còn lại.Hai tệpYêu cầu để gửi đi, và khóa riêng để giữ lại. Khóa chỉ tồn tại trong trình duyệt của bạn cho đến khi bạn lưu nó.Cũng việc đó, dưới dạng lệnhDòng OpenSSL tạo đúng yêu cầu này, dành cho lúc bạn muốn tự làm.
Một yêu cầu đang được tạo: các tên, loại khóa và hai tệp được tạo ra. Chọn một số để xem từng phần hiển thị gì.

Vì sao nên tạo khóa ngay trong trình duyệt?

Vì một khóa riêng đã đến máy chủ của người khác thì đúng với định nghĩa của chính ngành này về khóa bị lộ — bất kể máy chủ đó sau đó làm gì với nó.

Baseline Requirements của CA/Browser Forum định nghĩa điều đó không chừa chỗ cho tranh cãi: "A Private Key is said to be compromised if its value has been disclosed to an unauthorized person, or an unauthorized person has had access to it." Không cần bị lạm dụng. Chỉ cần đến nơi là đủ.

Đó không phải chuyện lý thuyết. Năm 2020, DigiCert phát hiện 337 khóa riêng mà khách hàng đã dán kèm với yêu cầu của họ, thu hồi mọi chứng chỉ liên quan và công bố việc này: "by sending the private key to DigiCert along with the CSR, the customer has compromised the private key", và nói thêm rằng "the only part of a CSR we use is the public key". Một công cụ tạo khóa trên máy chủ của nó rồi đưa bạn một bản sao thì, theo định nghĩa đó, đã làm lộ khóa rồi. Trang này không thể làm vậy: crypto.subtle.generateKey chạy trong trình duyệt của bạn, bên trong một khung cách ly không được phép kết nối đi đâu, và trang bao quanh nó chỉ thấy khóa công khai.

Nơi khóa riêng được tạoCA/Browser Forum TLS BR 2.3.1

Trang này

Trình duyệt của bạn
  1. Web Crypto tạo cặp khóa crypto.subtle.generateKey
  2. Khóa ký yêu cầu
  3. Bạn lưu cả hai tệp
Không gì vượt qua đường này
Máy chủ của họ

Khóa chỉ từng tồn tại trên máy của bạn

Một công cụ tạo khóa trên máy chủ của nó

Trình duyệt của bạn
  1. Các tên và thông tin của bạn được gửi đến máy chủ
Khóa riêng vượt qua nó
Máy chủ của họ
  1. Máy chủ tạo cặp khóa
  2. Khóa riêng được gửi lại cho bạn

Bị lộ theo định nghĩa, trước cả khi cài đặt bất cứ thứ gì

“A Private Key is said to be compromised if its value has been disclosed to an unauthorized person, or an unauthorized person has had access to it.”

định nghĩa mà chính các tổ chức cấp chứng chỉ viết cho mình

Chuyện này đã xảy ra rồiNăm 2020, một tổ chức cấp chứng chỉ phát hiện 337 khóa riêng bị gửi kèm bên cạnh các yêu cầuMọi chứng chỉ liên quan đều bị thu hồi

Điểm khác biệt không nằm ở cách tạo khóa mà ở nơi tạo. Một khóa đã từng ở trên máy chủ của người khác thì đã đúng với định nghĩa của chính ngành này về khóa bị lộ, bất kể máy chủ đó sau đó làm gì với nó.

Cách tạo CSR

Gõ các tên máy chủ, chọn một loại khóa rồi bấm nút. Mọi thứ khác đều không bắt buộc — một chứng chỉ hiện đại được nhận diện bằng các tên thay thế, không phải bằng chủ thể.

Đặt mọi tên mà chứng chỉ cần bao phủ vào ô tên: example.com, www.example.com, một wildcard như *.api.example.com, hoặc một địa chỉ IP. Tên đầu tiên cũng trở thành tên chung: khi một chứng chỉ có tên chung, Baseline Requirements yêu cầu nó phải lặp lại chính xác một trong các tên thay thế.

Quốc gia, tổ chức và địa phương chỉ quan trọng với chứng chỉ xác thực tổ chức hoặc xác thực mở rộng, và ngay cả khi đó CA vẫn phải tự xác thực chúng trước khi đưa vào chứng chỉ. Với chứng chỉ xác thực tên miền — loại Let's Encrypt cấp — các trường chủ thể duy nhất mà quy tắc cho phép là quốc gia và tên chung. Công cụ đánh dấu hai trường mà CA công khai loại bỏ hoặc cấm, đơn vị tổ chức và địa chỉ email, và cột bên cạnh biểu mẫu cho thấy điều gì sẽ thay đổi.

Từ các tên đến hai tệp/csr-generator
  1. Gõ các tên

    Mọi máy chủ mà chứng chỉ cần bao phủ; tên đầu tiên trở thành tên chung
  2. Chọn loại khóa

    P-256, trừ khi có thứ cũ phải đọc được nó
  3. Tạo yêu cầu

    Trình duyệt của bạn tạo khóa và dùng nó để ký yêu cầu
  4. Lấy hai tệp

    Gửi yêu cầu cho tổ chức cấp chứng chỉ của bạn; giữ khóa
Toàn bộ công việc, như trang này làm. Mọi thứ sau các tên đều không bắt buộc: một chứng chỉ hiện đại được nhận diện bằng các tên thay thế, nên các trường chủ thể chỉ quan trọng với đơn đặt xác thực tổ chức.

Nên chọn loại khóa nào?

ECDSA P-256 cho mọi thứ mới: nó mạnh ngang một khóa RSA 3072 bit, nhỏ hơn nhiều, và được các quy tắc mà mọi tổ chức cấp chứng chỉ công khai tuân theo cho phép. RSA 2048 khi một thiết bị cũ phải đọc được khóa.

NIST xếp P-256 và RSA-3072 ở cùng mức an toàn 128 bit, và hoàn toàn không gán mức an toàn riêng nào cho RSA-4096 — bậc kế tiếp trong bảng của họ là 7680 bit. Vì vậy 4096 khiến mỗi khách truy cập tốn thêm công sức bắt tay mà không có lợi ích nào được ghi nhận. P-384 là bậc 192 bit, và Baseline Requirements cũng cho phép P-521, nhưng Let's Encrypt từ chối P-521: một yêu cầu có thể hoàn toàn hợp lệ mà vẫn thất bại ở CA bạn định dùng.

Ed25519 được cung cấp ở đây vì nó rất tốt cho SSH, cho việc ký và cho một CA riêng — nhưng không tổ chức cấp chứng chỉ công khai nào cấp chứng chỉ TLS cho nó. Quy tắc liệt kê RSA và ba đường cong NIST rồi nói "no other algorithms or key sizes are permitted". Điều tương tự áp dụng cho ML-DSA hậu lượng tử: đề xuất bỏ phiếu có thể cho phép nó trong TLS công khai đã bị đóng mà không được hợp nhất vào tháng 10 năm 2026. Công cụ nói điều đó ngay bên cạnh từng lựa chọn, thay vì để bạn phát hiện qua một email từ chối.

Mức an toàn, theo bảng của NISTNIST SP 800-57 Part 1 Rev 5, Table 2
an toàn 112 bitan toàn 128 bitan toàn 192 bitan toàn 256 bit
RSA20483072768015360
RSA 40964096
ECDSA—P-256P-384P-521

4096 bit: không có bậc riêng Bảng đi thẳng từ kích thước này sang kích thước kế tiếp, nên công sức bắt tay thêm không mua được gì đã được ghi lại

Không có trong bảng

Ed25519Không tổ chức cấp chứng chỉ công khai nào cấp chứng chỉ cho nó

ML-DSAHậu lượng tử: đề xuất bỏ phiếu có thể cho phép nó đã bị đóng mà không được hợp nhất vào tháng 10 năm 2026

  • Cùng mức an toàn
  • Được cung cấp ở đây
  • Có trong bảng, không được cung cấp ở đây
  • Được chấp nhận bởiLet's Encrypt
Hãy đọc theo hàng ngang, không phải theo cột: P-256 và khóa RSA 3072 bit ở cùng mức an toàn, và đường cong làm được điều đó với kích thước khóa chỉ bằng một phần mười hai. Một khóa có thể nằm trong quy tắc mà vẫn bị từ chối bởi tổ chức cấp chứng chỉ bạn định dùng.

Nên điền gì vào từng trường

Tên: mọi máy chủ mà chứng chỉ bao phủ. Quốc gia: hai chữ cái. Tổ chức: tên pháp lý của bạn, cho chứng chỉ OV hoặc EV. Mọi thứ khác đều không bắt buộc, và một số giờ đã bị cấm.

Đơn vị tổ chức bị cấm. Theo ballot SC047 của CA/Browser Forum, không chứng chỉ TLS công khai nào được cấp từ ngày 1 tháng 9 năm 2022 được chứa OU; CA sẽ bỏ nó chứ không từ chối đơn đặt. Địa chỉ email trong chủ thể cũng không được phép trong chứng chỉ xác thực tên miền, và không khuyến khích ở các loại khác. Công cụ này vẫn cung cấp cả hai trường, cho các CA riêng, và đánh dấu chúng.

Quốc gia là mã ISO 3166-1 alpha-2 — US, DE, GB, IN — không phải tên quốc gia, và không phải ba chữ cái. Tỉnh hoặc bang nên được viết đầy đủ thay vì viết tắt. Với chứng chỉ xác thực mở rộng, bạn còn cần nơi thành lập và số đăng ký, mà công cụ này cũng cung cấp.

Những trường chủ thể nào còn lại trên chứng chỉCA/Browser Forum TLS BR 7.1.2.7
Trong yêu cầu của bạnDVXác thực tên miềnOVXác thực tổ chứcEVXác thực mở rộng
Tên chungCN
Quốc giaC
Tổ chứcO
Thành phố, tỉnh hoặc bangL, ST
Đường phố, mã bưu chínhstreet, postalCode
Đơn vị tổ chứcOUBị cấm từ 1 tháng 9, 2022
Địa chỉ emailemailAddress
Số đăng ký, loại hình doanh nghiệp, nơi thành lậpserialNumber, businessCategory, jurisdictionC
  • Có trên chứng chỉ, đúng như CA đã xác thực
  • Được phép, nhưng không khuyến khích
  • Không có trên loại chứng chỉ này
  • Không bao giờ được phép
Chỉ điền những gì chứng chỉ bạn định mua có thể mang: tổ chức cấp chứng chỉ phải xác thực mọi trường chủ thể mà nó giữ lại, và công cụ đánh dấu các trường mà CA công khai loại bỏ.

Tôi có thể dùng lại khóa hoặc CSR không?

Có thể — không có gì cấm — nhưng một khóa mới cho mỗi chứng chỉ chỉ tốn một giây và giới hạn phạm vi ảnh hưởng của một khóa bị lộ.

Baseline Requirements nói rõ rằng "one certificate request MAY suffice for multiple Certificates to be issued to the same Applicant", nên dùng lại một yêu cầu để gia hạn là được phép. Cái giá xuất hiện khi có chuyện xảy ra. Nếu khóa đó từng bị lộ, mọi chứng chỉ mang nó đều phải bị thu hồi trong vòng 24 giờ, chứ không chỉ cái bạn đang lo.

Và một khóa đã bị lộ là bị loại vĩnh viễn: CA "SHALL reject a certificate request" nếu đã được báo rằng khóa đó bị lộ, nên khóa đó không bao giờ có thể được chứng nhận lại bởi bất kỳ CA nào đã biết chuyện. Khi thời hạn chứng chỉ giảm xuống còn 47 ngày vào năm 2029, một khóa dùng lại sẽ phải ký trong nhiều năm qua hàng chục lần gia hạn. Tạo một khóa mới chỉ mất một giây.

Một khóa đứng sau nhiều chứng chỉCA/Browser Forum TLS BR 4.9.1.1 · 6.1.1.3

Một khóa, dùng lại

Khóa bị lộ
  • www.example.com
  • api.example.com
  • mail.example.com

3 chứng chỉ bị thu hồi trong vòng 24 giờ

Và khóa đó không bao giờ có thể được chứng nhận lại bởi một CA đã được báo

Một khóa mới cho mỗi chứng chỉ

  • www.example.com
  • api.example.comKhông bị ảnh hưởng
  • mail.example.comKhông bị ảnh hưởng

1 chứng chỉ bị thu hồi trong vòng 24 giờ

Dùng lại khóa là được phép. Cái giá chỉ xuất hiện khi khóa đó bị lộ: mọi thứ mang nó đều đi cùng lúc, và từ đó khóa bị từ chối.

Điều gì xảy ra sau khi bạn gửi CSR

CA xác thực các tên, bỏ qua phần lớn những thứ còn lại, rồi gửi lại một chứng chỉ. Hãy giữ khóa riêng — không có nó bạn không thể cài chứng chỉ.

Việc xác thực nói về các tên, không phải về tệp: một bản ghi DNS, một tệp trên máy chủ web, hoặc một email gửi đến một địa chỉ ở tên miền đó. Khi qua bước ấy, chứng chỉ được gửi lại và yêu cầu không còn tác dụng gì nữa — không cần nó để cài, gia hạn hay thu hồi bất cứ thứ gì. Thứ bạn phải giữ là khóa riêng, vì chứng chỉ vô dụng nếu thiếu nó. Hãy dán chứng chỉ vào công cụ giải mã CSR rồi thêm khóa riêng bên cạnh để kiểm tra chúng khớp nhau trước khi khởi động lại bất cứ thứ gì.

Chứng chỉ sẽ có hạn ngắn. Một chứng chỉ TLS công khai được cấp hôm nay không được vượt quá 200 ngày, giảm còn 100 vào ngày 15 tháng 3 năm 2027 và 47 vào ngày 15 tháng 3 năm 2029. Với độ dài ấy, việc gia hạn phải tự động, tức là ACME — và một ứng dụng ACME tự tạo yêu cầu cho bạn, nên trang này dành cho những trường hợp ứng dụng không phủ được: một thiết bị, một máy chuyên dụng, một CA muốn nhận yêu cầu làm bằng tay.

Từ yêu cầu đến một chứng chỉ chạy đượcRFC 8555 · CA/Browser Forum TLS BR 6.3.2
  1. Máy của bạnBạn gửi yêu cầu
  2. Tổ chức cấp chứng chỉNó kiểm tra bạn có kiểm soát từng tên khôngMột bản ghi DNSMột tệp trên máy chủ webMột email gửi đến một địa chỉ ở tên miền đó
  3. Tổ chức cấp chứng chỉNó ký chứng chỉ và gửi lại
  4. Máy của bạnBạn cài nó bên cạnh khóaSau bước này, yêu cầu không còn tác dụng gì nữa
Khóa riêng không bao giờ di chuyển
Chứng chỉ được phép có hiệu lực bao lâu
  1. 398 ngàyĐang có hiệu lực hôm nay
  2. 200 ngàytừ 15 tháng 3, 2026
  3. 100 ngàytừ 15 tháng 3, 2027
  4. 47 ngàytừ 15 tháng 3, 2029
Việc xác thực nói về các tên, không phải về tệp. Chứng chỉ được gửi lại vô dụng nếu thiếu khóa, và thời hạn ngắn như vậy là lý do gia hạn giờ phải tự động.

Cũng việc đó với OpenSSL

openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -nodes -keyout example.com.key -out example.com.csr tạo khóa và yêu cầu chỉ trong một bước.

Công cụ viết lệnh cho bất cứ thứ gì bạn đã điền, gồm cả các tên thay thế và mọi phần mở rộng, và các bài kiểm thử của chúng tôi chạy nó qua OpenSSL để xác nhận nó tạo cùng chủ thể và cùng các phần mở rộng với trang. Thêm -subj "/CN=example.com" để bỏ qua các câu hỏi, -addext "subjectAltName=DNS:example.com,DNS:www.example.com" cho các tên, và -utf8 để một tên có dấu không bị hỏng. -nodes để khóa không được mã hóa: OpenSSL 3 thích cách viết mới hơn là -noenc nhưng vẫn nhận -nodes, cũng là cách viết duy nhất mà LibreSSL tích hợp trong macOS hiểu. LibreSSL đó hoàn toàn không tạo được khóa Ed25519; hãy dùng OpenSSL 1.1.1 trở lên cho loại đó.

Để kiểm tra những gì bạn đã tạo: openssl req -in example.com.csr -text -verify -noout in mọi trường và xác minh chữ ký tự ký, dừng lại trước khi in bất cứ thứ gì nếu chữ ký sai. Để xác nhận khóa thuộc về yêu cầu, hãy so sánh openssl req -in example.com.csr -pubkey -noout với openssl pkey -in example.com.key -pubout. Không tiêu chuẩn nào gán phần mở rộng tên tệp cho một CSR, nên .csr, .pem, .req và .txt đều đúng.

Một lệnh, từng cờ mộtOpenSSL 3 · openssl-req(1)

openssl req -new -utf8 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -nodes -keyout example.com.key -out example.com.csr -sha256 -subj '/CN=example.com' -addext 'subjectAltName=DNS:example.com,DNS:www.example.com'

  1. openssl req -newTạo một yêu cầu ký chứng chỉ
  2. -utf8Đọc chủ thể dưới dạng UTF-8, để một tên có dấu không bị hỏng
  3. -newkey…cùng một cặp khóa mới
  4. -pkeyoptTrên đường cong P-256
  5. -nodesĐể tệp khóa không được mã hóa (OpenSSL 3.0 còn viết là -noenc)
  6. -keyoutNơi khóa riêng được ghi ra
  7. -outNơi yêu cầu được ghi ra
  8. -sha256Hàm băm dùng để ký yêu cầu
  9. -subjChủ thể, để nó không hỏi gì
  10. -addextCác tên thay thế

Đọc lại và xác minh chữ ký của chính nóopenssl req -in example.com.csr -text -verify -noout

Khóa có thuộc về yêu cầu không? Hai kết quả phải giống hệt nhauopenssl req -in example.com.csr -pubkey -nooutopenssl pkey -in example.com.key -pubout

Lệnh mà trang này viết cho ví dụ đầu tiên của nó, được tháo ra từng phần. Công cụ viết cùng một dòng như vậy cho bất cứ thứ gì bạn điền, với mọi tên và phần mở rộng mà yêu cầu mang.

Tạo CSR trên Windows, IIS và macOS

Windows có certreq và một tệp .inf; macOS có Keychain Access. Cả hai đều có một cái bẫy đáng biết trước khi bạn bắt đầu.

Trên Windows, certreq -new request.inf request.req đọc một tệp có phần [NewRequest] đặt chủ thể và độ dài khóa, còn các tên thay thế nằm trong [Extensions] dưới OID 2.5.29.17 với các dòng _continue_ — không có khóa SAN=, một lỗi rất dễ mắc. Trang tham chiếu của chính Microsoft có cảnh báo rằng ví dụ của họ dùng SHA-1, và Let's Encrypt từ chối một yêu cầu được ký bằng SHA-1, nên hãy tự đặt hàm băm.

Trên máy Mac, Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority tạo một yêu cầu; loại và kích thước khóa nằm sau ô "Let me specify key pair information", và khóa RSA dưới 2048 bit không còn được cung cấp. Cả hai cách đều không làm cho các tên thay thế dễ dàng, đó là lý do một dòng lệnh thường dễ hơn.

Tạo một cái mà không cần trình duyệtMicrosoft Learn · Apple Support

certreqWindows Server và IIS

certreq đọc một tệp văn bản thuần và ghi ra yêu cầucertreq -new request.inf request.req
request.inf
[NewRequest]Subject = "CN=example.com"KeyAlgorithm = RSAKeyLength = 2048HashAlgorithm = sha256RequestType = PKCS10[Extensions]2.5.29.17 = "{text}"_continue_ = "DNS=example.com&"_continue_ = "DNS=www.example.com"

Các tên thay thế: một phần mở rộng được gọi bằng OID của nó, mỗi dòng một tên

Hãy tự đặt hàm băm: ví dụ của chính Microsoft được viết quanh SHA-1, thứ mà tổ chức cấp chứng chỉ từ chối

Không có khóa SAN=

Keychain AccessmacOS

Keychain Access tạo một yêu cầu từ Certificate Assistant
  1. Keychain Access
  2. Certificate Assistant
  3. Request a Certificate From a Certificate Authority
Máy Mac của bạn đặt tên các menu này bằng ngôn ngữ của nó

Let me specify key pair information

Loại và kích thước khóa nằm sau ô nàyRSA tối đa 4096; dưới 2048 không còn được cung cấp
Cả hai cách đều tạo khóa trên chính máy của bạn, đó mới là điều quan trọng. Cả hai đều không làm cho các tên thay thế dễ dàng, đó là lý do một dòng lệnh thường dễ hơn.

Công cụ tạo CSR trực tuyến có an toàn không?

Điều đó hoàn toàn phụ thuộc vào nơi khóa được tạo. Một trang tạo khóa trong trình duyệt của bạn thì an toàn; một trang tạo nó trên máy chủ của mình thì đã từng chạm vào khóa riêng của bạn.

Phép thử rất đơn giản và bạn tự chạy được: mở bảng điều khiển mạng của trình duyệt, tạo một yêu cầu và quan sát. Nếu khóa được tạo ngay trên trang, cả nó lẫn bất cứ thứ gì bạn gõ đều không đi ra: ở đây, các yêu cầu duy nhất là cho chính trang và hai danh sách tên công khai, giống nhau với mọi khách truy cập. Nếu một yêu cầu đi ra và một khóa quay về, khóa đó đã tồn tại ở nơi khác trước, và theo định nghĩa của chính ngành này thì nó đã bị lộ trước cả khi bạn cài đặt.

Trang này làm mọi việc trong trình duyệt: cặp khóa đến từ crypto.subtle.generateKey bên trong một khung cách ly không được phép kết nối đi đâu, trang viết yêu cầu quanh khóa công khai, và khung ký nó một lần bằng khóa riêng, thứ không bao giờ rời khỏi khung. Hai tệp chỉ xuất hiện trong trình duyệt của bạn và không ở đâu khác. Nếu bạn không muốn tin bất kỳ trang web nào với việc này, lệnh OpenSSL trên trang này làm cùng việc đó ngay trên máy của bạn — chúng tôi đưa nó ra chính vì lý do đó.

Bảng điều khiển mạng, trong lúc một khóa được tạoCông cụ cho nhà phát triển › Mạng

Trang này

Yêu cầuNó mang gì
GETtlds.jsonDanh sách tên miền cấp cao nhất — giống nhau với mọi khách truy cập
GETsuffixes.jsonDanh sách hậu tố công khai — giống nhau với mọi khách truy cập

Không có gì bạn gõ, và không có khóa nào, rời khỏi trang

Một công cụ tạo khóa trên máy chủ của nó

Yêu cầuNó mang gì
POST…/generateCác tên và thông tin của bạn
200-----BEGIN PRIVATE KEY-----Một khóa riêng, được tạo ở nơi khác

Một khóa quay về qua mạng: nó đã tồn tại ở nơi khác trước

Hãy thử: mở công cụ cho nhà phát triển của trình duyệt, vào thẻ Mạng và tạo một yêu cầu. Ngoài mã của chính trang, nó chỉ tải hai danh sách công khai, giống nhau với mọi khách truy cập; khóa do mật mã của chính trình duyệt tạo ra, trong một khung không được phép kết nối đi đâu.

Công cụ tạo CSR: câu hỏi và trả lời

Làm thế nào để tạo một CSR?

Gõ các tên máy chủ mà chứng chỉ cần bao phủ, chọn một loại khóa — ECDSA P-256 là lựa chọn mặc định hợp lý — rồi bấm nút. Hai tệp được tạo ra: yêu cầu ký chứng chỉ để gửi cho tổ chức cấp chứng chỉ của bạn, và khóa riêng để giữ lại. Mọi thứ diễn ra trong trình duyệt của bạn, nên không gì được tải lên và không gì được lưu.

Tạo CSR trực tuyến có an toàn không?

Điều đó phụ thuộc vào nơi khóa được tạo. Nếu trang tạo nó trên máy chủ của mình, máy chủ đó đã từng chạm vào khóa riêng của bạn, điều mà chính định nghĩa của CA/Browser Forum gọi là bị lộ. Nếu trang tạo nó trong trình duyệt của bạn, khóa không bao giờ rời khỏi đó. Trang này làm theo cách thứ hai, và bạn có thể xác nhận: mở bảng điều khiển mạng và quan sát khi bạn tạo một cái.

Tôi nên chọn loại khóa nào?

ECDSA P-256 cho mọi thứ mới. NIST xếp nó cùng mức an toàn 128 bit với khóa RSA 3072 bit, và nó nhỏ hơn nhiều, nên mỗi lần bắt tay đều rẻ hơn. Chọn RSA 2048 khi một thiết bị cũ hoặc bộ cân bằng tải cần nó. RSA 4096 không mang lại lợi ích nào được ghi nhận so với 3072, và Let's Encrypt không nhận P-521 dù quy tắc cho phép.

Tôi có thể dùng khóa Ed25519 cho chứng chỉ công khai không?

Không. Không tổ chức cấp chứng chỉ công khai nào cấp chứng chỉ cho loại này. Baseline Requirements liệt kê RSA và các đường cong P-256, P-384 và P-521, rồi thêm rằng "no other algorithms or key sizes are permitted". Ed25519 được cung cấp ở đây vì nó phù hợp với SSH, với việc ký và với một CA riêng — nhưng một đơn đặt TLS công khai với nó sẽ bị từ chối.

Tệp khóa riêng dùng để làm gì?

Đó là nửa của cặp khóa chứng minh chứng chỉ là của bạn, và nó không bao giờ được gửi cho ai. Hãy lưu nó cạnh yêu cầu; bạn sẽ cần nó để cài chứng chỉ mà CA gửi lại, và thiếu nó thì chứng chỉ vô dụng. Nếu bạn làm mất nó, cách khắc phục duy nhất là một khóa mới, một yêu cầu mới và một chứng chỉ mới.

Tôi có cần điền tổ chức và quốc gia không?

Chỉ với chứng chỉ xác thực tổ chức hoặc xác thực mở rộng, và ngay cả khi đó CA vẫn phải tự xác thực chúng trước khi đưa vào chứng chỉ. Với chứng chỉ xác thực tên miền, quy tắc chỉ cho phép quốc gia và tên chung trong chủ thể — mọi thứ khác đều không được xuất hiện. Công cụ đánh dấu hai trường mà CA công khai loại bỏ hoặc cấm: đơn vị tổ chức và địa chỉ email.

Vì sao trường đơn vị tổ chức lại cảnh báo tôi?

Vì OU bị cấm trong chứng chỉ TLS công khai. Theo ballot SC047 của CA/Browser Forum, không chứng chỉ TLS công khai nào được cấp từ ngày 1 tháng 9 năm 2022 được chứa nó, nên các tổ chức cấp chứng chỉ bỏ nó khỏi đơn đặt chứ không từ chối. Công cụ này vẫn cung cấp trường đó, cho các CA riêng, và cho bạn biết một CA công khai sẽ làm gì.

Tôi có thể đặt nhiều tên miền vào một CSR không?

Có — đó là mục đích của các tên thay thế, và đó là cách một chứng chỉ nhiều tên miền hay chứng chỉ SAN được đặt. Hãy thêm mọi máy chủ mà chứng chỉ cần bao phủ, kể cả dạng www nếu bạn muốn. Bạn có thể trộn wildcard với tên thường, và thêm địa chỉ IP, dù không phải CA nào cũng bán chứng chỉ cho một địa chỉ.

Tôi có thể dùng lại CSR hoặc khóa cho chứng chỉ tiếp theo không?

Được: quy tắc nói một yêu cầu có thể dùng cho nhiều chứng chỉ của cùng một người đăng ký. Lý do không nên là phạm vi ảnh hưởng. Nếu khóa đó từng bị lộ, mọi chứng chỉ mang nó phải bị thu hồi trong vòng 24 giờ, và khóa đó không bao giờ có thể được chứng nhận lại bởi bất kỳ CA nào đã được báo. Tạo một khóa mới chỉ mất một giây.

Challenge password là gì?

Một thuộc tính tùy chọn từ RFC 2985, vốn là một bí mật chung mà bạn sẽ nêu ra khi yêu cầu thu hồi sau này. Nó vẫn được SCEP dùng khi thiết bị đăng ký, và một số dịch vụ chứng chỉ của Microsoft yêu cầu nó. Nó không có vai trò gì trong một đơn đặt chứng chỉ web thông thường, nên hãy để trống trừ khi CA của bạn yêu cầu cụ thể.

Công cụ này có dùng được cho chứng chỉ wildcard không?

Có. Hãy đặt *.example.com vào các tên, và thêm cả example.com nếu bạn muốn bao phủ tên miền trần — một wildcard thay đúng một nhãn và không khớp với chính tên mà nó nằm bên dưới. Dấu sao phải là toàn bộ nhãn ngoài cùng bên trái, và không CA nào cấp wildcard trên một public suffix như *.co.uk.

Tôi làm gì với các tệp sau đó?

Gửi yêu cầu cho tổ chức cấp chứng chỉ của bạn và giữ khóa riêng ở nơi an toàn, chỉ mình bạn đọc được (chế độ 600 trên Linux và macOS). Khi chứng chỉ được gửi lại, hãy dán nó cùng yêu cầu vào công cụ giải mã CSR để xác nhận chúng dùng chung một khóa trước khi khởi động lại bất cứ thứ gì — một khóa không khớp với chứng chỉ của nó là lỗi bạn muốn phát hiện trước khi máy chủ của bạn phát hiện.

Còn thiếu điều gì?Đề xuất tính năng hoặc công cụ mới