Topik ini mencakup format file sertifikat yang umum dan konsep terkait. Ini menjelaskan cara mengidentifikasi format, memilih yang tepat untuk server web populer, serta melakukan konversi di antara mereka menggunakan perintah siap pakai.
Format file sertifikat yang umum
Server yang berbeda memerlukan format sertifikat yang berbeda. Untuk detail lebih lanjut, lihat Pemilihan Format Sertifikat untuk Server Web Utama. Setelah membeli dan menerbitkan sertifikat di Konsol Layanan Manajemen Sertifikat, unduh file sertifikat dalam format yang sesuai dengan kebutuhan server Anda. Untuk informasi lebih lanjut, lihat Unduh Sertifikat SSL.
Ekstensi file | Format konten | Deskripsi |
| Format teks (PEM) | Ekstensi yang umum. Dapat menyimpan sertifikat, kunci privat, rantai sertifikat, atau kombinasi dari semuanya. Periksa penanda BEGIN/END di file untuk menentukan isi spesifiknya. |
| Format teks (PEM) atau format biner (DER) | Biasanya menyimpan file kunci privat. |
| Format teks (PEM) atau format biner (DER) | Biasanya hanya berisi sertifikat (kunci publik dan informasi identitas) dan bukan kunci privat. Bisa berupa sertifikat server tunggal atau file rantai sertifikat yang mencakup sertifikat perantara. |
| Format biner (PKCS#12) | Dapat berisi sertifikat server, kunci privat, dan rantai sertifikat dalam satu file. Format ini biasanya dilindungi kata sandi. |
| Format biner (JKS) | Format Java Keystore eksklusif, digunakan untuk menyimpan entri kunci (kunci privat dan rantai sertifikat) dan entri kepercayaan (sertifikat CA). Sejak Java 9, PKCS#12 telah menjadi format rekomendasi default. |
Pemilihan format sertifikat untuk server web utama
Jenis server | Format yang direkomendasikan | File yang diperlukan | Deskripsi |
Nginx, Apache | PEM | File sertifikat ( | Memerlukan konfigurasi terpisah untuk file sertifikat dan file kunci privat. File sertifikat harus berupa rantai sertifikat lengkap yang mencakup sertifikat server dan semua sertifikat perantara. |
Tomcat, JBoss, WebLogic | PFX/P12 (PKCS#12) | File Keystore ( | Format PKCS#12 standar direkomendasikan untuk server aplikasi Java. Jika Anda masih menggunakan format JKS lama, migrasikan ke PKCS#12. |
IIS | PFX | File Keystore ( | Format standar untuk server IIS Windows. Terapkan sertifikat dan kunci privat dengan mengimpor file PFX yang dilindungi kata sandi. |
IBM WebSphere | KDB | File Keystore ( | Format eksklusif yang dikelola menggunakan alat resmi IBM |
Untuk Nginx dan Apache, jika Otoritas Sertifikat (CA) menyediakan file sertifikat perantara terpisah, gabungkan sertifikat server dengan sertifikat perantara untuk membuat file rantai lengkap sebelum penerapan. Biasanya, Anda tidak perlu menyertakan sertifikat root CA. Cukup gabungkan sertifikat server dan sertifikat perantara.
# Jalankan di terminal Linux atau macOS.
cat server.crt chain.crt > fullchain.crtKonsep terkait file sertifikat SSL
File sertifikat SSL melibatkan empat konsep inti berikut:
Komponen Sertifikat: Elemen inti yang membentuk komunikasi SSL yang aman.
Sertifikat SSL: Kredensial identitas yang berisi informasi seperti nama domain, kunci publik, penerbit, dan periode validitas.
Kunci Privat: Membentuk pasangan kunci dengan kunci publik dalam sertifikat. Digunakan untuk otentikasi identitas dan komunikasi terenkripsi. Kunci privat harus disimpan secara ketat rahasia.
Rantai Sertifikat: Jalur kepercayaan lengkap dari sertifikat server ke sertifikat root CA. Berisi satu atau lebih sertifikat CA perantara.
Metode Pengkodean: Metode untuk mengubah konten menjadi aliran data.
Privacy-Enhanced Mail (PEM): Format teks yang menggunakan pengkodean Base64 dan dibungkus oleh penanda
-----BEGIN...-----dan-----END...-----. File PEM dapat berisi sertifikat, kunci privat, atau kombinasi keduanya.Aturan Pengkodean DER (Distinguished Encoding Rules): Format biner. Ini adalah pengkodean biner dari ASN.1. PEM adalah enkapsulasi berbasis teks dari data DER yang dikodekan Base64 dengan penanda BEGIN/END. File DER lebih kecil daripada file PEM tetapi tidak dapat dengan mudah dibaca di editor teks.
Format Wadah: Standar untuk menggabungkan satu atau lebih komponen sertifikat.
PFX / P12 (PKCS#12): Penyimpanan sertifikat format biner. Menggabungkan sertifikat server, kunci privat, dan rantai sertifikat perantara ke dalam satu file terenkripsi yang dilindungi kata sandi. Ini adalah format yang disukai saat memigrasikan sertifikat antar server (terutama Windows IIS) atau memberikan sertifikat ke server aplikasi Java karena menyederhanakan penerapan.
JKS (Java Keystore): Format penyimpanan sertifikat spesifik Java. Meskipun masih digunakan oleh beberapa aplikasi Java lama, industri sekarang merekomendasikan menggunakan format PKCS#12 yang lebih universal.
Ekstensi Nama File: Akhiran file, seperti
.pem,.crt,.key, dan.pfx.CatatanEkstensi nama file hanya merupakan konvensi penamaan dan tidak selalu menunjukkan pengkodean file dengan andal. Misalnya, file
.crtbisa berupa file yang dikodekan PEM atau DER. Periksa isi file untuk menentukan format sebenarnya.
Cara mengidentifikasi format file sertifikat
Sebelum penerapan, gunakan metode ini untuk mengidentifikasi format file sertifikat dan mencegah kegagalan penerapan.
Identifikasi berdasarkan konten teks (format PEM)
Buka file di editor teks. Jika Anda melihat blok ASCII dalam format berikut, file tersebut dikodekan PEM. Jika tidak, gunakan alat OpenSSL untuk mengidentifikasi format.
-----BEGIN CERTIFICATE-----
MIIE5zCCA8+gAwIBAgIQN+whYc2BgzAogau0dc3PtzANBgkqh......
-----END CERTIFICATE-----Penanda umum meliputi berikut ini:
-----BEGIN CERTIFICATE-----: File sertifikat.-----BEGIN PRIVATE KEY-----atau-----BEGIN RSA PRIVATE KEY-----: File kunci privat.-----BEGIN ENCRYPTED PRIVATE KEY-----: File kunci privat terenkripsi.-----BEGIN EC PRIVATE KEY-----: File kunci privat Kurva Eliptik (EC).
Identifikasi menggunakan alat OpenSSL
Untuk file biner yang tidak dapat dibaca di editor teks, atau ketika Anda perlu mendapatkan informasi rinci, gunakan alat baris perintah OpenSSL untuk mengidentifikasi format.
Identifikasi file sertifikat berformat PEM.
Jika isi file dimulai dengan-----BEGIN CERTIFICATE-----, itu adalah sertifikat yang dikodekan PEM.# Lihat detail sertifikat PEM openssl x509 -in certificate.crt -noout -textIdentifikasi file kunci privat berformat PEM.
Jika isi file dimulai dengan-----BEGIN PRIVATE KEY-----,-----BEGIN RSA PRIVATE KEY-----,-----BEGIN ENCRYPTED PRIVATE KEY-----, atau-----BEGIN EC PRIVATE KEY-----, itu adalah kunci privat yang dikodekan PEM.# Lihat detail kunci privat PEM openssl pkey -in private.key -noout -textIdentifikasi penyimpanan sertifikat PFX/P12.
Ini adalah format biner yang berisi sertifikat dan kunci privat.# Lihat isi file PFX. Anda akan diminta untuk memasukkan kata sandi. openssl pkcs12 -in keystore.pfx -info -nooutIdentifikasi sertifikat berformat DER.
DER adalah format pengkodean biner untuk sertifikat. File tersebut tidak dapat dibaca di editor teks. Umum digunakan untuk aplikasi Java, platform seluler, dan penyimpanan sertifikat Windows.
# Lihat detail sertifikat DER openssl x509 -in certificate.der -inform der -noout -text
Konversi format sertifikat
Anda dapat mengonversi format sertifikat dengan dua cara:
Gunakan alat konversi di Layanan Manajemen Sertifikat: Layanan ini menyediakan alat sertifikat yang nyaman yang mendukung konversi cepat antara format seperti PEM, PFX, dan JKS tanpa memerlukan operasi baris perintah.
Gunakan alat baris perintah OpenSSL: OpenSSL adalah alat pemrosesan sertifikat paling serbaguna. Tersedia di semua sistem operasi dan menyediakan opsi konversi yang sangat dapat disesuaikan.
Gunakan alat konversi di Layanan Manajemen Sertifikat
Layanan Manajemen Sertifikat Alibaba Cloud menyediakan alat konversi format sertifikat SSL. Mendukung konversi antara PEM dan PFX, PEM dan JKS, serta PEM dan PKCS8. Untuk informasi lebih lanjut, lihat Alat Sertifikat.
Gunakan alat baris perintah OpenSSL
Konversi PEM ke PFX (untuk IIS, Tomcat)
Perintah ini menggabungkan file sertifikat (
.crt), file kunci privat (.key), dan file rantai sertifikat opsional menjadi satu file PFX yang dilindungi kata sandi.# Jalankan perintah ini jika Anda hanya memiliki sertifikat server dan kunci privat. openssl pkcs12 -export -out server.pfx -inkey private.key -in server.crt # Jalankan perintah ini jika Anda memiliki rantai sertifikat lengkap. openssl pkcs12 -export -out server.pfx -inkey private.key -in server.crt -certfile chain.crtPisahkan PFX menjadi PEM (untuk Nginx, Apache)
Perintah ini mengekstrak sertifikat (termasuk rantai sertifikat) dan kunci privat dari file PFX untuk menghasilkan file PEM terpisah.
# 1. Ekstrak kunci privat yang dilindungi kata sandi. openssl pkcs12 -in server.pfx -nocerts -out server.encrypted.key # 2. Ekstrak sertifikat daun server (tanpa rantai CA). openssl pkcs12 -in server.pfx -clcerts -nokeys -out server.crt # 3. Ekstrak sertifikat CA perantara (Catatan: Sertifikat root CA biasanya tidak diperlukan). openssl pkcs12 -in server.pfx -cacerts -nokeys -out chain.crt # 4. (Opsional) Hapus perlindungan kata sandi dari kunci privat untuk startup non-interaktif Nginx atau Apache. openssl pkey -in server.encrypted.key -out private.key # 5. (Opsional) Gabungkan file menjadi file rantai sertifikat lengkap untuk Nginx atau Apache # Urutan: sertifikat server terlebih dahulu, lalu sertifikat perantara (jika ada banyak, tambahkan sesuai urutan) # Catatan: Jika chain.crt tidak ada (tidak ada sertifikat perantara di file PFX), lewati langkah ini. cat server.crt chain.crt > fullchain.crtCatatanFile
private.keyakhir adalah kunci privat tanpa perlindungan kata sandi dan dapat digunakan langsung dalam konfigurasi server. Pastikan izin file dikontrol secara ketat (misalnya,chmod 400 private.keyuntuk mengizinkan akses baca-saja bagi pemilik file).Jika rantai sertifikat ada dan Anda telah menggabungkan file menjadi file rantai sertifikat lengkap, gunakan pengaturan berikut untuk penerapan:
Nginx: Atur
ssl_certificateke jalur filefullchain.crtdanssl_certificate_keyke jalur fileprivate.key.Apache: Atur
SSLCertificateFileke jalur filefullchain.crt(untuk Apache 2.4.8 dan yang lebih baru) danSSLCertificateKeyFileke jalur fileprivate.key. Untuk versi Apache sebelum 2.4.8, Anda harus mengonfigurasi rantai sertifikat perantara secara terpisah di direktifSSLCertificateChainFile.
Konversi antara DER dan PEM
DER dan PEM masing-masing adalah pengkodean biner dari ASN.1 dan versi Base64 dari DER dengan penanda
BEGIN/END. Isinya identik, tetapi pengkodeannya berbeda.# Konversi DER ke PEM openssl x509 -inform der -in certificate.cer -out certificate.pem # Konversi PEM ke DER openssl x509 -inform pem -in certificate.pem -outform der -out certificate.derKonversi JKS ke PFX/P12 (jalur migrasi yang direkomendasikan)Jika Anda menggunakan Keystore JKS lama, konversikan ke format PFX/P12 yang lebih universal menggunakan utilitas
keytoolJava.keytool -importkeystore -srckeystore keystore.jks -srcstoretype JKS -destkeystore keystore.p12 -deststoretype PKCS12CatatanPerintah ini memigrasikan semua entri dari
keystore.jkske filekeystore.p12baru. Jika Anda ingin memigrasikan hanya entri tertentu, Anda dapat menambahkan parameter-srcalias "your_alias"dan-destalias "your_alias". Selama proses, Anda akan diminta untuk memasukkan kata sandi untuk keystore tujuan (PFX/P12) dan keystore sumber (JKS).