Gunakan Certificates Manager untuk mengelola kunci privat, sertifikat, serta menghasilkan dan memverifikasi tanda tangan. Panduan ini menjelaskan cara membuat sertifikat, mengunduh permintaan penandatanganan sertifikat (CSR), mengimpor sertifikat, dan menggunakan sertifikat.
Langkah 1: Buat sertifikat dan unduh CSR
Masuk ke KMS console.
Di bilah navigasi atas, pilih wilayah tempat Anda ingin membuat sertifikat.
Di panel navigasi sebelah kiri, klik Certificates.
Pada halaman Sertifikat, klik Create Certificate.
Dalam kotak dialog Create Certificate, konfigurasikan parameter berikut.
Parameter
Deskripsi
CommonName(CN)
Nama entitas yang menggunakan sertifikat.
Country(C)
Kode negara alpha-2 yang sesuai dengan standar ISO 3166-1. Contohnya, CN menunjukkan Tiongkok.
StateOrProvince(ST)
Nama provinsi, kotamadya, daerah otonom, atau daerah administratif khusus.
Locality(L)
Nama kota.
Organization(O)
Nama hukum perusahaan, organisasi, atau institusi.
Anda dapat mengklik tanda tambah (+) untuk menambahkan lebih banyak nama.
OrganizationUnit(OU)
Nama departemen.
Anda dapat mengklik tanda tambah (+) untuk menambahkan lebih banyak nama.
Email(E)
Alamat email pemegang sertifikat atau administrator.
SubjectAlternativeNames
Jika sertifikat adalah sertifikat divalidasi domain (DV), Anda dapat menambahkan nama alternatif subjek untuk menghasilkan CSR multi-domain.
Klik tanda tambah (+), masukkan nama alternatif subjek, lalu klik ikon
.Key Spec
Nilai valid:
RSA_2048
EC_SM2
EC_P256
CatatanPilih nilai berdasarkan algoritma yang didukung oleh sistem aplikasi sertifikat. EC_P256 memberikan keamanan tingkat lanjut, dan RSA_2048 memberikan kompatibilitas tinggi. Namun, sistem aplikasi tertentu tidak akan lagi mendukung RSA_2048 mulai tanggal 31 Desember 2030.
Exportable Key
Menentukan apakah kunci privat sertifikat dapat diekspor untuk digunakan. Nilai valid:
Ya: Kunci privat sertifikat dapat diekspor untuk digunakan.
Tidak: Kunci privat sertifikat tidak dapat diekspor untuk digunakan. Untuk tujuan keamanan, kami sarankan Anda memilih Tidak.
Klik Create Certificate.
Dalam kotak dialog Successfully created certificate, klik Download certificate request.
Klik OK.
Langkah 2: Dapatkan sertifikat yang diterbitkan CA
Kirimkan file CSR yang diunduh pada Langkah 1 ke otoritas sertifikat (CA) untuk mendapatkan sertifikat yang divalidasi dan rantai sertifikat.
Langkah 3: Impor sertifikat
Dalam daftar sertifikat, temukan sertifikat dan pilih di kolom Actions.
Dalam kotak dialog Import certificate, unggah sertifikat dan rantai sertifikat yang diperoleh pada Langkah 2 atau masukkan isi sertifikat dan rantai sertifikat.
Klik OK.
Setelah mengimpor sertifikat, statusnya akan menjadi Active. Anda dapat menggunakan sertifikat tersebut untuk berbagai operasi seperti mengelola kunci, menghasilkan tanda tangan, atau memverifikasi tanda tangan.
Langkah 4: Gunakan sertifikat untuk menghasilkan tanda tangan
Metode 1: Panggil operasi CertificatePrivateKeySign untuk menghasilkan tanda tangan menggunakan sertifikat.
Metode 2: Gunakan SDK KMS untuk menghasilkan tanda tangan menggunakan sertifikat. Untuk informasi lebih lanjut tentang SDK KMS, lihat Ikhtisar SDK. Contoh kode Java:
import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.kms.model.v20160120.CertificatePrivateKeySignRequest; import com.aliyuncs.kms.model.v20160120.CertificatePrivateKeySignResponse; import org.apache.commons.codec.binary.Base64; /** * @param client Klien SDK Alibaba Cloud. Untuk informasi lebih lanjut, lihat dokumentasi Alibaba Cloud SDK for Java. * @param certId ID sertifikat yang ingin Anda gunakan. * @param sigAlg Algoritma tanda tangan digital. Untuk informasi lebih lanjut, lihat dokumen referensi operasi API KMS CertificatePrivateKeySign. * @param message Konten yang ingin Anda tandatangani. Ukuran konten harus kurang dari atau sama dengan 4 KB. */ public byte[] doSignByCertificate(DefaultAcsClient client, String certId, String sigAlg, byte[] message) throws ClientException { String msgB64 = Base64.encodeBase64String(message); // Enkode konten yang ingin Anda tandatangani dalam Base64. CertificatePrivateKeySignRequest request = new CertificatePrivateKeySignRequest(); request.setCertificateId(certId); request.setAlgorithm(sigAlg); request.setMessage(msgB64); CertificatePrivateKeySignResponse response = client.getAcsResponse(request); String sigB64 = response.getSignatureValue(); return Base64.decodeBase64(sigB64); // Dekode data yang dikodekan Base64 yang dikembalikan untuk mendapatkan nilai tanda tangan. }
Langkah 5: Gunakan sertifikat untuk memverifikasi tanda tangan
Metode 1: Panggil operasi CertificatePublicKeyVerify untuk memverifikasi tanda tangan menggunakan sertifikat.
Metode 2: Gunakan SDK KMS untuk memverifikasi tanda tangan digital menggunakan sertifikat. Untuk informasi lebih lanjut tentang SDK KMS, lihat Ikhtisar SDK. Contoh kode Java:
import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.kms.model.v20160120.CertificatePublicKeyVerifyRequest; import com.aliyuncs.kms.model.v20160120.CertificatePublicKeyVerifyResponse; import org.apache.commons.codec.binary.Base64; /** * @param client Klien SDK Alibaba Cloud. Untuk informasi lebih lanjut, lihat dokumentasi Alibaba Cloud SDK for Java. * @param certId ID sertifikat yang ingin Anda gunakan. * @param sigAlg Algoritma tanda tangan digital. Untuk informasi lebih lanjut, lihat dokumen referensi operasi API KMS CertificatePrivateKeySign. * @param message Konten yang ingin Anda verifikasi. Ukuran konten harus kurang dari atau sama dengan 4 KB. * @param signature Tanda tangan digital dari konten yang ingin Anda verifikasi. */ public Boolean doVerifyByCertificate(DefaultAcsClient client, String certId, String sigAlg, byte[] message, byte[] signature) throws ClientException { String msgB64 = Base64.encodeBase64String(message); // Enkode konten yang ingin Anda verifikasi dalam Base64. String sigB64 = Base64.encodeBase64String(signature); // Enkode nilai tanda tangan dalam Base64. CertificatePublicKeyVerifyRequest request = new CertificatePublicKeyVerifyRequest(); request.setCertificateId(certId); request.setAlgorithm(sigAlg); request.setMessage(msgB64); request.setSignatureValue(sigB64); CertificatePublicKeyVerifyResponse response = client.getAcsResponse(request); return response.getSignatureValid(); }