Convert PFX, CRT, and PEM Azure SSL/TLS Certificates

Convert PFX, CRT, and PEM Azure SSL/TLS Certificates

Apa itu SSL/TLS?

SSL/TLS (Secure Sockets Layer/Transport Layer Security) adalah protokol keamanan yang digunakan untuk mengamankan komunikasi antara server dan klien. Dalam konteks web, SSL/TLS digunakan untuk mengenkripsi data yang dikirimkan antara browser dan server web, sehingga informasi sensitif seperti kata sandi dan nomor kartu kredit tidak dapat diakses oleh pihak ketiga.

SSL merupakan versi awal dari protokol ini, sedangkan TLS adalah versi yang lebih baru dan lebih aman. Meskipun istilah SSL masih sering digunakan, saat ini sebagian besar situs web menggunakan TLS, terkadang disebut sebagai SSL/TLS.

Mengapa kita perlu sertifikat SSL/TLS?

Sertifikat SSL/TLS diperlukan untuk mengaktifkan protokol HTTPS (HTTP Secure) pada situs web. Dengan menggunakan HTTPS, data yang dikirimkan antara browser dan server web akan dienkripsi, sehingga meningkatkan keamanan dan privasi pengguna. Selain itu, sertifikat SSL/TLS juga memberikan kepercayaan kepada pengguna bahwa situs web tersebut aman dan dapat dipercaya.

Dalam case ini kita sudah membeli SSL/TLS Certificate melalui Azure App Service Certificate, yang menyediakan sertifikat dalam format PFX. Kita akan membahas cara mengkonversi sertifikat tersebut ke format lain seperti PEM dan CRT.

Cara mendapatkan sertifikat SSL/TLS dari Azure App Service Certificate

Untuk mendapatkan sertifikat SSL/TLS dari Azure App Service Certificate, kita perlu mengikuti langkah-langkah berikut:

Setelah masuk ke portal Azure bisa langsung memmilih “App Service Certificates” dari menu utama atau menggunakan fitur pencarian.

Pilih “App Service Certificates” dari menu.

Azure App Service Certificate

Buka sub-menu Settings, lalu pilih “Export Certificate”, kemudian pilih “Open Key Vault Secrets” untuk mengunduh sertifikat.

Download Azure App Service Certificate

Pilih version sertifikat yang ingin diunduh, lalu klik “Download as a certificate”, maka dialog download akan berjalan, dan kita akan mendapatkan file dengan ekstensi .pfx.

Download Azure App Service Certificate PFX

Setelah mendownload sertifikat dari Azure App Service Certificate, kita akan mendapatkan file dengan ekstensi .pfx. File ini berisi sertifikat server, private key.

Kita bisa melihat isi dari file PFX dengan menggunakan perintah berikut:

openssl pkcs12 -in kv-funccertprod1-drsb.pfx -nodes

Perintah di atas akan menampilkan informasi tentang sertifikat, private key, dan sertifikat CA yang terdapat dalam file PFX jika ada. Kita akan diminta untuk memasukkan password yang digunakan saat mengunduh sertifikat dari Azure App Service Certificate.

Sebenarnya hal ini kita sudah berhasil mengeluarkan sertifikat SSL/TLS dari Azure App Service Certificate, namun kita perlu mengkonversi file PFX ini ke format lain seperti PEM atau CRT agar bisa digunakan pada server web.

Cara mengkonversi sertifikat SSL/TLS dari PFX format

Jika kita sudah mendownload sertifikat SSL/TLS dari Azure App Service Certificate dalam format PFX, kita bisa mengkonversinya ke format PEM atau CRT. Misalkan kita sudah mendapatkan file berikut:

  • server.pfx : sertifikat server dalam format PFX

maka kita bisa menggunakan perintah berikut untuk mengkonversi file PFX menjadi file PEM dengan menggunakan OpenSSL dan menekstrak private key dan sertifikat dari file PFX tersebut:

# mengekstrak private key dari file PFX
openssl pkcs12 -in cert.pfx -nocerts -out cert-encrypt.key

# menghapus password dari private key
openssl rsa -in cert-encrypt.key -out cert.key

# mengekstrak sertifikat dari file PFX
openssl pkcs12 -in cert.pfx -clcerts -nokeys -out cert.crt

Perintah di atas akan mengkonversi file PFX menjadi file PEM yang bisa digunakan untuk konfigurasi SSL/TLS pada server web.

Biasanya saya “membersihkan” file output dari perintah OpenSSL dengan hanya menyisakan Header dan Footernya saja, sehingga memiliki data seperti berikut:

$ cat cert.crt
-----BEGIN CERTIFICATE-----
MIIGkjCCBXqgAwIBAgIID4lE64Tq38wwDQYJKoZIhvcNAQELBQAwgbQxCzAJBgNV
...snip...
L0Xb3ClP
-----END CERTIFICATE-----

Cara membuat sertifikat SSL/TLS dengan PEM format

asumsi bahwa kita sudah membeli server SSL dari penyedia sertifikat, dan kita sudah mendapatkan file-file berikut:

  • cert.crt : sertifikat server
  • cert.key : private key sertifikat
  • ca.crt : sertifikat CA dari penyedia sertifikat, bisa diunduh dari situs web penyedia sertifikat, dalam case ini kita menggunakan GoDaddy sebagai penyedia sertifikat

untuk membuat sertifikat SSL/TLS dengan format PEM chain cert, kita bisa menggunakan perintah berikut:

cat cert.crt ca.crt > server.pem

perintah di atas akan menggabungkan file sertifikat dan ca sertifikat menjadi satu file server.pem yang bisa digunakan untuk konfigurasi SSL/TLS pada server web seperti nginx.

Kesimpulan

Dalam tutorial ini, kita telah membahas cara mengkonversi sertifikat SSL/TLS dari format PFX ke format PEM dan CRT. Kita juga telah melihat bagaimana cara mendapatkan sertifikat SSL/TLS dari Azure App Service Certificate dan menggabungkan sertifikat server dengan sertifikat CA untuk membuat file PEM yang lengkap.

Azure App Service Certificate menggunakan GoDaddy sebagai penyedia sertifikat, untuk ca.crt atau sertifikat CA, kita bisa mendapatkan file tersebut dari penyedia sertifikat atau mengunduhnya dari situs web mereka di https://certs.godaddy.com/repository/, hal ini juga berlaku untuk sertifikat CA lainnya atau penyedia sertifikat lainnya.

Demikianlah cara membuat sertifikat SSL/TLS dengan format yang berbeda. Pastikan untuk menyimpan file-file sertifikat dan private key dengan aman, dan jangan membagikannya kepada pihak ketiga atau publik. Sertifikat SSL/TLS adalah bagian penting dari keamanan situs web, dan harus dikelola dengan hati-hati untuk menjaga integritas dan kepercayaan pengguna.