Công cụ chứng chỉ X.509 & CSR API

Giải mã chứng chỉ PEM/DER, CSR, khoá, PKCS#7 và CRL, kiểm tra khoá khớp chứng chỉ, chuyển PEM↔DER, tạo cặp khoá và CSR.

GETPOSThttps://apibox.io.vn/v1/x509
Bảo mật & Mã hoá▶ Dùng thử online

action=decode (mặc định): dán một hoặc nhiều khối PEM vào pem (hoặc gửi file DER / der_base64). Với chứng chỉ, API trả về chủ thể và nhà cấp (UTF-8, đọc đúng tên tiếng Việt), số serial, thời hạn và số ngày còn lại, SAN, thuật toán và độ dài khoá, thuật toán ký, chính sách DV / OV / EV, basic constraints, mục đích sử dụng khoá (key usage, extended key usage), định danh khoá, URL OCSP / CA issuer / CRL, việc có SCT hay không và dấu vân tay SHA-256 / SHA-1. Với CSR: chủ thể, các SAN và extension được yêu cầu, chữ ký tự ký có hợp lệ không; khoá công khai và khoá bí mật (PKCS#8, PKCS#1, SEC1): loại và độ dài; gói PKCS#7 (.p7b): danh sách chứng chỉ dạng PEM; CRL: các số serial bị thu hồi. Với một gói PEM nhiều chứng chỉ, API kiểm tra thứ tự chuỗi (mỗi chứng chỉ được ký bởi chứng chỉ kế tiếp), còn host kiểm tra tên miền với chứng chỉ đầu tiên.

action=match cho biết chứng chỉ, CSR và khoá bí mật có cùng khoá công khai không (so SPKI SHA-256), bước kiểm tra quen thuộc trước khi cài chứng chỉ. action=convert trả mỗi khối ở dạng DER base64 và PEM. action=generate tạo cặp khoá EC (P-256, P-384) hoặc RSA (2048, 3072, 4096) bằng WebCrypto và, khi có cn / subject / san, một CSR đã ký sẵn để gửi nhà cung cấp chứng chỉ; self_signed=true cấp thêm chứng chỉ tự ký với thời hạn days (dùng cho môi trường phát triển, dịch vụ nội bộ). private_key (PEM PKCS#8 không mã hoá) dùng khoá sẵn có của bạn để tạo CSR.

Không lưu, không ghi log: khoá và chứng chỉ chỉ được xử lý trong bộ nhớ. Dù vậy, tạo khoá cho môi trường production ngay trên máy của bạn (openssl) vẫn an toàn nhất. Chưa hỗ trợ khoá có mật khẩu và file PKCS#12 (.pfx).

Tham số

TênVị tríKiểuBắt buộcMặc định
actionbody|querystringkhôngdecodedecode, match, convert hoặc generate.
pembodystringkhôngMột hoặc nhiều khối PEM (hoặc DER base64). Bắt buộc, trừ khi generate.
filebodyfilekhôngFile DER hoặc PEM thay cho pem (multipart, body thô hoặc der_base64).
hostbody|querystringkhôngdecode / match: tên miền cần kiểm tra với chứng chỉ đầu tiên (hiểu wildcard).
atbody|querystringkhôngdecode: ngày ISO dùng để tính days_remaining / valid_now (mặc định là hiện tại).
key_typebodystringkhôngecgenerate: ec hoặc rsa.
curvebodystringkhôngP-256generate (EC): P-256 hoặc P-384.
bitsbodynumberkhông2048generate (RSA): 2048, 3072 hoặc 4096.
cnbodystringkhônggenerate: tên chung CN (cùng o, ou, l, st, c, email, hoặc chuỗi subject như /C=VN/O=ABC/CN=abc.vn).
sanbodyarraykhônggenerate: tên miền / IP / e-mail cho SAN (mặc định là CN nếu CN là tên miền).
self_signedbodybooleankhôngfalsegenerate: cấp thêm chứng chỉ tự ký.
daysbodynumberkhông365generate: thời hạn chứng chỉ tự ký (1–3650 ngày).
private_keybodystringkhônggenerate: khoá PKCS#8 PEM sẵn có, không mã hoá, dùng để tạo CSR (không sinh khoá mới).

Ví dụ

curl -X POST "https://apibox.io.vn/v1/x509" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"pem":"-----BEGIN CERTIFICATE-----\nMIICATCCAaegAwIBAgIQZ7JpDsbujH4Q+IqANm/6tDAKBggqhkjOPQQDAjA+MQsw\nCQYDVQQGEwJWTjEaMBgGA1UECgwRQ8O0bmcgdHkgVsOtIEThu6UxEzARBgNVBAMM\nCmV4YW1wbGUudm4wHhcNMjYxMTExMDMyMDUzWhcNMjcxMTExMDMyMDUzWjA+MQsw\nCQYDVQQGEwJWTjEaMBgGA1UECgwRQ8O0bmcgdHkgVsOtIEThu6UxEzARBgNVBAMM\nCmV4YW1wbGUudm4wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARqqfLzQSw0vsTJ\nSybOOJ2tX5rVFJCJRh6Wcvb6K1D89M+GEuKtt6JKGDqNLGZ32GW6baSUnQs56CGI\nNgssWh4Vo4GGMIGDMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgWAMB0GA1Ud\nJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAdBgNVHQ4EFgQUxdzC6thtbmfWlE+S\nOdJPhYgCErcwJQYDVR0RBB4wHIIKZXhhbXBsZS52boIOd3d3LmV4YW1wbGUudm4w\nCgYIKoZIzj0EAwIDSAAwRQIgAMtCLzFiC2E5JsJ+S6xrFZ23s4FRvkCfBkPQZB7+\n3SoCIQC9mrlvlIb9Rc3aDzs/GMNhn1L6UeveiH1AQNDciaZ8Uw==\n-----END CERTIFICATE-----\n"}'

Kết quả trả về

{
  "count": 1,
  "items": [
    {
      "type": "certificate",
      "der_bytes": 517,
      "subject": "C=VN, O=Công ty Ví Dụ, CN=example.vn",
      "subject_fields": {
        "C": "VN",
        "O": "Công ty Ví Dụ",
        "CN": "example.vn"
      },
      "issuer": "C=VN, O=Công ty Ví Dụ, CN=example.vn",
      "serial_number": "67:B2:69:0E:C6:EE:8C:7E:10:F8:8A:80:36:6F:FA:B4",
      "version": 3,
      "not_before": "2026-11-11T03:20:53Z",
      "not_after": "2027-11-11T03:20:53Z",
      "days_remaining": 364,
      "valid_now": true,
      "validity_days": 365,
      "san": {
        "dns": [
          "example.vn",
          "www.example.vn"
        ],
        "ip": [],
        "email": [],
        "uri": []
      },
      "public_key": {
        "algorithm": "EC",
        "curve": "P-256",
        "size": 256
      },
      "signature_algorithm": "ecdsa-with-SHA256",
      "is_ca": false,
      "self_signed": true,
      "validation_level": null,
      "extensions": {
        "basic_constraints": {
          "ca": false,
          "path_length": null,
          "critical": true
        },
        "key_usage": [
          "digitalSignature"
        ],
        "extended_key_usage": [
          "serverAuth",
          "clientAuth"
        ],
        "subject_key_id": "C5:DC:C2:EA:D8:6D:6E:67:D6:94:4F:92:39:D2:4F:85:88:02:12:B7"
      },
      "fingerprints": {
        "sha256": "95:73:C4:36:B0:18:EF:21:42:FD:CA:52:58:B7:81:75:7B:EE:A4:F1:5B:AA:83:34:20:0E:B2:C4:A9:7F:D5:06",
        "sha1": "46:26:CA:A3:3B:35:F8:89:B6:81:F5:F9:E3:A1:3B:E5:BE:F7:FF:EB"
      },
      "spki_sha256": "cf57c6d726bb97a98ad7dc4b4595e423cc6b9a432eda486a9ec2286a2f3556d9"
    }
  ],
  "key_match": [
    {
      "spki_sha256": "cf57c6d726bb97a98ad7dc4b4595e423cc6b9a432eda486a9ec2286a2f3556d9",
      "blocks": [
        0
      ],
      "types": [
        "certificate"
      ]
    }
  ]
}

Ứng dụng

  • Đọc ngày hết hạn, SAN và nhà cấp từ file .crt hoặc .pem
  • Kiểm tra khoá bí mật có khớp chứng chỉ trước khi cài lên máy chủ
  • Tạo CSR có nhiều SAN để mua chứng chỉ SSL
  • Tạo chứng chỉ tự ký cho máy chủ thử nghiệm

Hỏi đáp

Khoá bí mật của tôi có bị lưu lại không?

Không. Khoá chỉ được xử lý trong bộ nhớ cho đúng request đó và không ghi log. Với khoá dùng thật, nên tạo và đối chiếu ngay trên máy bằng openssl.

Hỗ trợ những định dạng nào?

Các khối PEM (CERTIFICATE, CERTIFICATE REQUEST, PUBLIC KEY, PRIVATE KEY, RSA / EC PRIVATE KEY, PKCS7, X509 CRL) và file DER. Chưa hỗ trợ PKCS#12 / .pfx và khoá có mật khẩu.

Giải mã có kiểm tra chứng chỉ được tin cậy không?

Không: API giải mã và kiểm tra chữ ký giữa các chứng chỉ bạn gửi. Hãy dùng ssl-check để xem máy chủ đang chạy thực tế trả về chứng chỉ nào.

API liên quan

Bắt đầu với 1.000 request miễn phí mỗi tháng. Nhận API key miễn phí →