bg-tutorials

Cara Membuat CSR untuk Sertifikat Code Signing di macOS Dengan Keychain Access

Keychain Access masih ada di setiap Mac, dan Certificate Assistant miliknya masih menghasilkan permintaan penandatanganan sertifikat. Apakah permintaan tersebut berguna untuk penandatanganan kode sepenuhnya bergantung pada sertifikat mana yang Anda pesan. Untuk sertifikat Apple Developer ID, yang memungkinkan Anda mendistribusikan perangkat lunak Mac di luar Mac App Store, Keychain Access adalah alat yang tepat dan langkah-langkah di bawah ini masih berlaku. Untuk sertifikat code signing komersial dari Certificate Authority publik, jenis yang digunakan untuk menandatangani executable Windows, installer, driver, dan aplikasi Java, permintaan yang dihasilkan di Keychain Access tidak lagi diterima sejak 1 Juni 2023, karena private key sekarang harus dibuat pada perangkat keras.

Tentukan dulu mana dari kedua jenis tersebut yang Anda butuhkan, lalu ikuti bagian yang sesuai.

Sertifikat code signing mana yang sebenarnya Anda dapatkan?

Kedua produk disebut sertifikat code signing dan keduanya membuktikan siapa yang menerbitkan sebuah perangkat lunak, tetapi keduanya berasal dari penerbit yang berbeda dan mengikuti aturan yang berbeda pula. Pembaca sampai di halaman ini karena Apple dan Certificate Authority publik menggunakan istilah yang sama untuk dua hal yang berbeda.

  • Sertifikat Apple Developer ID. Diterbitkan oleh Apple, di bawah Developer ID Certification Authority miliknya sendiri, kepada anggota Apple Developer Program. Sertifikat ini menandatangani aplikasi Mac, plug-in, dan paket installer yang Anda distribusikan sendiri, sehingga macOS Gatekeeper mengenali Anda sebagai identified developer. Pasangan kunci dibuat di Mac Anda dan disimpan di login keychain Anda, dan Anda membuat permintaan tersebut di Keychain Access.
  • Sertifikat code signing yang dipercaya secara publik. Dibeli dari Certificate Authority publik seperti Sectigo, DigiCert, atau GlobalSign. Sertifikat ini menandatangani executable Windows, installer MSI, driver, skrip PowerShell, dan aplikasi Java. Sertifikat ini diatur oleh CA/Browser Forum Code Signing Baseline Requirements, yang mengharuskan private key dibuat dan disimpan pada perangkat keras bersertifikat, sehingga tidak ada yang perlu dilakukan Keychain Access.

Aturan keputusan singkatnya: jika perangkat lunak yang Anda tandatangani berjalan di macOS dan Anda mengirimkannya di luar Mac App Store, Anda memerlukan sertifikat Developer ID. Jika Anda menandatangani apa pun untuk Windows, atau aplikasi Java, Anda memerlukan sertifikat code signing komersial, meskipun Anda membuatnya di Mac. Tidak ada satu pun dari keduanya yang merupakan sertifikat SSL/TLS. Jika yang sebenarnya Anda inginkan adalah HTTPS pada server Mac, ikuti panduan cara membuat CSR di macOS Servers sebagai gantinya.

Jalur komersial: mengapa metode Keychain tidak lagi berlaku

Sejak 1 Juni 2023, CA/Browser Forum Code Signing Baseline Requirements mewajibkan private key untuk setiap sertifikat code signing yang dipercaya secara publik, baik standar (OV) maupun Extended Validation (EV), untuk dibuat dan disimpan dalam modul kripto perangkat keras yang memenuhi FIPS 140-2 Level 2, Common Criteria EAL4+, atau standar setara, dan tidak dapat diekspor. Code signing EV selalu mewajibkan perangkat keras; perubahan tahun 2023 memperluas aturan yang sama ke sertifikat standar.

Kunci yang dibuat oleh Certificate Assistant gagal memenuhi persyaratan tersebut sesuai desainnya, karena tiga alasan terpisah:

  • Kunci tersebut adalah materi kunci perangkat lunak yang dapat diekspor. Kunci ditulis ke dalam login keychain Anda, dan Anda dapat memilihnya lalu mengekspornya sebagai file .p12. Portabilitas tersebut memang praktis untuk pengembangan Apple, dan justru itulah sifat yang ingin dihilangkan oleh persyaratan perangkat keras.
  • Ukuran kunci tidak sesuai. Baseline Requirements menetapkan minimum RSA 3072 bit untuk code signing, sedangkan menu Key Size pada Certificate Assistant tidak memiliki opsi 3072.
  • Permintaan tersebut hampir tidak membawa informasi identitas. Certificate Assistant hanya meminta Common Name dan alamat email. Tidak ada tempat untuk memasukkan detail organisasi, lokalitas, provinsi, atau negara yang divalidasi oleh Certificate Authority untuk sertifikat code signing yang tervalidasi organisasi.

Itu menyisakan dua cara yang sah untuk mendapatkan sertifikat code signing yang dipercaya secara publik, dan mana yang Anda gunakan ditentukan saat Anda memesan:

  • Token beserta pengiriman. Certificate Authority membuat pasangan kunci dan permintaan pada token USB bersertifikat di pihak mereka, memuat sertifikat yang diterbitkan ke dalamnya, dan mengirimkan token tersebut ke Anda melalui pos. Tidak ada CSR yang perlu Anda buat atau tempelkan di mana pun. Lihat metode pengiriman sertifikat code signing mana yang harus dipilih.
  • Token perangkat keras, HSM, atau cloud HSM milik Anda sendiri, disertai attestation. Anda membuat kunci di dalam perangkat, menghasilkan permintaan di sana, dan mengirimkan file attestation yang membuktikan bahwa kunci tersebut dibuat pada perangkat keras yang sesuai dan tidak dapat diekspor. Ikuti panduan pembuatan CSR dan attestation YubiKey 5 FIPS atau panduan CSR dan attestation Luna Network Attached HSM v7.x, atau dokumentasi resmi dari vendor HSM Anda.

Satu perubahan lagi yang sudah berlaku: ballot CSC-31 memangkas masa berlaku maksimum sertifikat code signing yang dipercaya secara publik dari 39 bulan menjadi 460 hari untuk sertifikat yang diterbitkan mulai 1 Maret 2026, sehingga perpanjangan kini datang kira-kira setiap 15 bulan sekali. Untuk gambaran yang lebih luas, lihat cara membuat CSR untuk sertifikat code signing dan versi OpenSSL dari panduan yang sama.

Membuat CSR di Keychain Access untuk sertifikat Apple Developer ID

Jika Anda sudah menyimpan file .certSigningRequest, langsung lompat ke bagian mengirimkan file tersebut di akun developer Anda.

Ada dua hal yang perlu diperiksa sebelum Anda mulai. Anda memerlukan keanggotaan Apple Developer Program, dan Apple mewajibkan peran Account Holder untuk membuat sertifikat Developer ID. Anda juga diperbolehkan memiliki hingga lima sertifikat Developer ID Application dan lima sertifikat Developer ID Installer per tim. Portal tersebut meminta Anda mengunggah permintaan setiap kali Anda membuat sertifikat, jadi lakukan proses ini sekali untuk setiap sertifikat.

Langkah 1: Buka Keychain Access dan mulai permintaan

Keychain Access tidak lagi berada di tempat yang disebutkan kebanyakan tutorial. Hingga macOS Sonoma, aplikasi ini berada di Applications > Utilities. Mulai dari macOS Sequoia, Apple memindahkannya ke /System/Library/CoreServices/Applications/, sebuah folder sistem yang tidak ditampilkan Finder saat Anda menjelajahi Applications, sehingga mencarinya di Utilities kini tidak akan menemukan apa pun. Cara tercepat untuk membukanya adalah menggunakan Spotlight (tekan Command-Space dan ketik Keychain Access), atau satu perintah di Terminal:

open "/System/Library/CoreServices/Applications/Keychain Access.app"

Setelah aplikasi terbuka, pilih Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority pada menu bar.

Sebelum melakukannya, klik area kosong pada daftar item agar tidak ada yang terpilih. Jika sebuah kunci atau sertifikat sedang disorot, item menu tersebut berubah menjadi Request a Certificate From a Certificate Authority With diikuti nama item tersebut, dan sistem akan membangun permintaan berdasarkan kunci yang sudah ada, bukan membuat pasangan kunci baru. Hal ini berguna jika Anda memang sengaja ingin menggunakan kembali sebuah kunci, tetapi membingungkan jika tidak.

Menu Keychain Access terbuka pada Certificate Assistant, dengan Request a Certificate From a Certificate Authority disorot

Langkah 2: Isi jendela Certificate Information

Certificate Assistant terbuka pada panel berjudul Certificate Information. Panel ini hanya meminta sedikit informasi:

  • User Email Address: alamat email pada akun Apple Developer Anda.
  • Common Name: label untuk pasangan kunci, misalnya Developer ID Application Key. Ini bukan nama yang akan muncul di sertifikat. Apple membangun subjek sertifikat yang diterbitkan dari tim Anda, dalam bentuk Developer ID Application: Nama Tim Anda (TEAMID), jadi anggap saja kolom ini sebagai referensi pribadi Anda.
  • CA Email Address: biarkan kosong. Kolom ini hanya digunakan oleh opsi pengiriman lainnya.
  • Request is: pilih Saved to disk, bukan Emailed to the CA. Portal developer Apple menerima file yang diunggah.

Jika Anda juga ingin memilih ukuran kunci atau algoritmanya, centang Let me specify key pair information di sini. Kemudian klik Continue.

Panel Certificate Information pada Certificate Assistant, menampilkan kolom User Email Address, Common Name, dan CA Email Address dengan Saved to disk terpilih

Langkah 3: Pilih pengaturan pasangan kunci, jika diperlukan

Panel ini hanya muncul jika Anda mencentang kotak di langkah 2, dan untuk sertifikat Developer ID Anda biasanya bisa melewatinya. Nilai default-nya adalah RSA pada 2048 bit, yang merupakan pengaturan yang digunakan pada instruksi resmi Apple sendiri. Dengan RSA terpilih, menu Key Size menawarkan 2048, 4096, dan 8192 bit. Menu Algorithm menawarkan RSA dan ECC, dan beralih ke ECC akan mengganti ukuran-ukuran tersebut menjadi 256, 384, dan 521 bit. Biarkan algoritma tetap pada RSA kecuali layanan yang Anda daftarkan secara khusus meminta kunci kurva eliptik.

Versi panduan ini sebelumnya menyarankan Anda memilih minimal 3072 bit pada tahap ini. Angka tersebut adalah minimum CA/Browser Forum untuk sertifikat code signing komersial. Angka itu tidak berlaku untuk Developer ID, dan tidak ditawarkan dalam menu ini, jadi tidak ada yang perlu dipilih. Klik Continue.

Panel Specify Key Pair Information pada Certificate Assistant, menampilkan menu Key Size dan Algorithm

Langkah 4: Simpan permintaan dan periksa isinya

Pilih lokasi penyimpanan file dan klik Save. Anda akan mendapatkan file dengan ekstensi .certSigningRequest, dan Certificate Assistant juga menempatkan pasangan kunci yang sesuai ke dalam login keychain Anda. File itu sendiri adalah teks PEM biasa, sehingga Anda dapat membukanya di TextEdit dan membacanya, meskipun blok yang dienkode tidak akan memberi tahu banyak hal dengan sendirinya.

File permintaan penandatanganan sertifikat terbuka di TextEdit, menampilkan penanda BEGIN dan END CERTIFICATE REQUEST di sekitar blok yang dienkode

Untuk memastikan detailnya sebelum Anda mengunggahnya, dekode permintaan tersebut di Terminal. Ini berfungsi dengan perintah openssl yang sudah ada di macOS, yang sebenarnya adalah LibreSSL dan bukan OpenSSL asli, sehingga tidak perlu instalasi apa pun:

openssl req -noout -text -in CertificateSigningRequest.certSigningRequest

Periksa tiga hal pada hasilnya: baris Subject menampilkan Common Name dan alamat email yang Anda ketikkan, baris kunci publik melaporkan 2048 bit (atau ukuran lain yang Anda pilih), dan algoritma tanda tangannya adalah SHA-256. Jika Anda lebih memilih untuk tidak menggunakan Terminal, tempelkan isi file tersebut ke dalam CSR decoder kami untuk membaca kolom-kolom yang sama.

Langkah 5: Kirim permintaan dan pasang sertifikat

Masuk ke akun Apple Developer Anda dan buka Certificates, Identifiers & Profiles. Klik Certificates pada bilah sisi, lalu tombol tambah, dan di bawah Software pilih Developer ID. Pilih jenis yang Anda butuhkan:

  • Developer ID Application menandatangani aplikasi, plug-in, atau bundel Mac.
  • Developer ID Installer menandatangani paket installer Mac yang berisi aplikasi Anda yang sudah ditandatangani.

Klik Continue, lalu Choose File, pilih file .certSigningRequest Anda, klik Continue lagi, dan klik Download. Apple akan mengembalikan file sertifikat dengan ekstensi .cer. Klik dua kali file tersebut untuk memasangnya, dan file itu akan muncul di Keychain Access di bawah My Certificates, berpasangan dengan private key yang dibuat pada langkah 4.

Menandatangani dengan sertifikat hanyalah setengah dari yang diperiksa macOS. Gatekeeper mengharuskan perangkat lunak yang diunduh dari luar Mac App Store ditandatangani dengan sertifikat Developer ID dan dinotarisasi oleh Apple, jadi kirimkan build yang sudah ditandatangani untuk notarisasi sebelum Anda mendistribusikannya. Notarisasi tidak menggantikan tanda tangan, melainkan berjalan di atasnya.

Menemukan private key dan mencadangkannya

Sertifikat tersebut tidak ada gunanya tanpa private key yang dibuat oleh Certificate Assistant, dan kunci tersebut hanya ada di satu tempat sampai Anda menyalinnya. Untuk menemukannya, buka Keychain Access, pilih keychain login, lalu kategori Keys, dan cari Common Name yang Anda ketikkan pada langkah 2. Anda akan melihat dua entri di bawah nama tersebut, satu kunci publik dan satu private key. Perhatikan bahwa kunci publik bukanlah CSR Anda: CSR adalah file .certSigningRequest yang Anda simpan ke disk.

Keychain Access menampilkan pasangan kunci publik dan private key yang dibuat oleh Certificate Assistant di login keychain

Setelah file .cer terpasang, lihat di bawah My Certificates sebagai gantinya. Di sana sertifikat dan private key-nya muncul sebagai satu entri tunggal, yang merupakan identitas penandatanganan yang digunakan oleh codesign, Xcode, dan skrip build Anda. Untuk memindahkan identitas tersebut ke Mac lain atau ke server build, klik kanan entri tersebut dan pilih Export, yang akan menghasilkan file .p12 yang dilindungi oleh kata sandi yang Anda tetapkan. Simpan file tersebut sebagaimana Anda menyimpan kunci penandatanganan lainnya, karena siapa pun yang memiliki file itu beserta kata sandinya dapat menandatangani perangkat lunak atas nama Anda.

Cadangkan sebelum Anda membutuhkannya. Sertifikat Developer ID berlaku selama lima tahun dan tidak dapat diperpanjang: ketika satu sertifikat kedaluwarsa, Anda membuat penggantinya. Jika Anda kehilangan private key, sertifikat tersebut tidak akan pernah bisa digunakan lagi dan Anda harus membuat yang baru, yang akan menggunakan salah satu dari lima slot Developer ID Application atau lima slot Developer ID Installer Anda. Tahan keinginan untuk mencabut sertifikat yang sudah tidak berguna itu demi kerapian. Apple secara eksplisit menyatakan bahwa aplikasi yang ditandatangani dengan sertifikat Developer ID yang dicabut tidak akan dapat dipasang, dan tidak akan berjalan bagi pengguna yang sudah memilikinya, sehingga mencabutnya akan merusak setiap salinan yang sudah beredar. Cabut hanya jika kunci tersebut memang benar-benar dicuri, dan bersiaplah menghadapi kerusakan yang akan terjadi.

Satu hal yang perlu diperhatikan bagi siapa pun yang datang ke sini untuk sertifikat komersial: jika Anda sudah membuat pasangan kunci di Keychain Access untuk pesanan Certificate Authority publik, kunci itu tidak dapat digunakan dan tidak ada CA yang akan menerimanya. Tidak akan ada yang rusak jika Anda membiarkannya, tetapi tidak ada alasan kuat untuk menyimpan materi kunci penandatanganan yang dapat diekspor di dalam keychain. Pilih kunci publik dan private key di bawah Keys lalu hapus keduanya, kemudian pesan melalui token atau HSM sebagai gantinya.

Pertanyaan yang Sering Diajukan

Apakah saya masih bisa membuat CSR code signing dengan Keychain Access?

Untuk sertifikat Apple Developer ID, ya, dan itulah metode yang didokumentasikan oleh Apple. Untuk sertifikat code signing yang dipercaya secara publik dari Certificate Authority komersial, tidak. Sejak 1 Juni 2023, private key tersebut harus dibuat dan disimpan pada modul kripto perangkat keras yang memenuhi FIPS 140-2 Level 2, Common Criteria EAL4+, atau standar setara, dan kunci yang dibuat di Keychain Access merupakan materi kunci perangkat lunak yang dapat diekspor.

Di mana letak Keychain Access pada macOS saat ini?

Di /System/Library/CoreServices/Applications/. Apple memindahkannya ke sana pada macOS Sequoia, sehingga tidak lagi berada di Applications > Utilities dan tidak muncul saat Anda menjelajahi Applications di Finder. Buka aplikasi ini dengan Spotlight, atau jalankan open "/System/Library/CoreServices/Applications/Keychain Access.app" di Terminal. Aplikasi Passwords terpisah yang diperkenalkan bersamaan dengannya hanya menangani kata sandi, bukan sertifikat dan kunci.

Ukuran kunci apa yang harus saya pilih di Certificate Assistant?

RSA 2048 bit untuk sertifikat Developer ID, yang merupakan nilai default, sehingga Anda dapat membiarkan Let me specify key pair information tidak dicentang. Dengan RSA terpilih, menu Key Size menawarkan 2048, 4096, dan 8192 bit, dan beralih ke ECC akan menggantinya dengan 256, 384, dan 521 bit. Pada pengaturan mana pun, menu ini tidak menawarkan 3072 bit, yang merupakan minimum CA/Browser Forum untuk sertifikat code signing komersial, dan itu menjadi salah satu dari beberapa alasan mengapa jalur ini tidak cocok untuk pesanan komersial.

Mengapa Certificate Assistant tidak meminta nama perusahaan, kota, atau negara saya?

Karena permintaan yang dibuatnya hanya membawa Common Name dan alamat email. Apple tidak memerlukan lebih dari itu: Apple mengisi subjek sertifikat Developer ID dari akun developer Anda. Certificate Authority komersial memang memerlukan detail organisasi, dan memvalidasinya terhadap catatan publik, yang menjadi alasan lain mengapa permintaan Keychain tidak cocok untuk pesanan tersebut.

Apakah saya memerlukan token perangkat keras untuk sertifikat Apple Developer ID?

Tidak. Aturan perangkat keras CA/Browser Forum berlaku untuk sertifikat code signing yang dipercaya secara publik yang diterbitkan oleh Certificate Authority komersial. Sertifikat Developer ID diterbitkan oleh certificate authority milik Apple sendiri kepada anggota Apple Developer Program, dan kuncinya dibuat di login keychain Anda oleh Certificate Assistant, persis seperti yang dijelaskan di atas.

Apakah saya memerlukan CSR terpisah untuk Developer ID Application dan Developer ID Installer?

Buat satu untuk masing-masing. Portal developer meminta Anda mengunggah permintaan penandatanganan sertifikat setiap kali membuat sertifikat, dan memberikan pasangan kunci sendiri untuk setiap identitas berarti mengganti atau mencabut salah satunya tidak akan memengaruhi perangkat lunak yang ditandatangani dengan yang lain. Berikan setiap permintaan sebuah Common Name yang dapat Anda bedakan nantinya di Keychain Access.

Saya sudah menyimpan CSR tetapi tidak dapat menemukan private key-nya. Apa yang salah?

Periksa kategori Keys pada keychain login, cari berdasarkan Common Name yang Anda ketikkan, bukan nama file. Jika memang benar-benar tidak ada, penyebab umumnya adalah pasangan kunci dibuat di Mac lain atau di bawah akun pengguna lain, item keychain tersebut telah dihapus, atau permintaan tersebut dibangun dari kunci yang sudah ada menggunakan varian menu Request a Certificate From a Certificate Authority With. Tanpa private key, permintaan tersebut tidak dapat digunakan, jadi buatlah yang baru.

Berapa lama masa berlaku sertifikat code signing?

Sertifikat code signing yang dipercaya secara publik yang diterbitkan mulai 1 Maret 2026 dibatasi hingga 460 hari, dikurangi dari 39 bulan berdasarkan ballot CSC-31 CA/Browser Forum. Sertifikat Apple Developer ID berlaku selama lima tahun dan diganti, bukan diperpanjang. Dalam kedua kasus tersebut, perangkat lunak yang Anda tandatangani saat sertifikat masih berlaku akan tetap berfungsi setelah kedaluwarsa, asalkan tanda tangannya diberi timestamp. Apple menerapkan satu pengecualian: Apple memeriksa sertifikat Developer ID Installer pada saat paket installer dijalankan, sehingga sebuah .pkg harus ditandatangani ulang setelah sertifikat tersebut kedaluwarsa, meskipun aplikasi di dalamnya tidak terpengaruh.

Untuk bacaan terkait, lihat tutorial code signing kami, cara-cara lain untuk membuat CSR, dan cara menandatangani file EXE menggunakan sertifikat code signing.

Hemat 10% untuk Sertifikat SSL saat memesan hari ini!

Penerbitan cepat, enkripsi kuat, kepercayaan peramban 99,99%, dukungan khusus, dan jaminan uang kembali 25 hari. Kode kupon: SAVE10

Ditulis oleh

Penulis konten berpengalaman yang berspesialisasi dalam Sertifikat SSL. Mengubah topik keamanan siber yang rumit menjadi konten yang jelas dan menarik. Berkontribusi untuk meningkatkan keamanan digital melalui narasi yang berdampak.