Pengantar keytool

Java Top

Saya baru saja mengumumkan kursus Learn Spring baru , yang berfokus pada dasar-dasar Spring 5 dan Spring Boot 2:

>> LIHAT KURSUSnya

1. Ikhtisar

Dalam tutorial singkat ini, kami akan memperkenalkan perintah keytool . Kami akan mempelajari cara menggunakan keytool untuk membuat sertifikat baru dan memeriksa informasi untuk sertifikat itu.

2. Apa itu keytool?

Java menyertakan utilitas keytool dalam rilisnya. Kami menggunakannya untuk mengelola kunci dan sertifikat dan menyimpannya di keystore. The keytool perintah memungkinkan kita untuk membuat sertifikat yang ditandatangani sendiri dan menampilkan informasi tentang keystore.

Di bagian berikut, kita akan membahas berbagai fungsi utilitas ini.

3. Membuat Sertifikat yang Ditandatangani Sendiri

Pertama-tama, mari buat sertifikat yang ditandatangani sendiri yang dapat digunakan untuk membangun komunikasi yang aman antar proyek di lingkungan pengembangan kita, misalnya.

Untuk menghasilkan sertifikat , kita akan membuka prompt baris perintah dan menggunakan perintah keytool dengan opsi -genkeypair :

keytool -genkeypair -alias  -keypass  -validity  -storepass 

Mari pelajari lebih lanjut tentang masing-masing parameter ini:

  • alias - nama untuk sertifikat kami
  • keypass - kata sandi sertifikat. Kami memerlukan kata sandi ini untuk memiliki akses ke kunci pribadi sertifikat kami
  • validitas - waktu (dalam hari) validitas sertifikat kami
  • storepass - kata sandi untuk keystore. Ini akan menjadi kata sandi keystore jika penyimpanannya tidak ada

Misalnya, buat sertifikat bernama "cert1" yang memiliki kunci pribadi "pass123" dan valid selama satu tahun. Kami juga akan menetapkan "stpass123" sebagai sandi keystore:

keytool -genkeypair -alias cert1 -keypass pass123 -validity 365 -storepass stpass123

Setelah menjalankan perintah, itu akan meminta beberapa informasi yang perlu kami berikan:

What is your first and last name? [Unknown]: Name What is the name of your organizational unit? [Unknown]: Unit What is the name of your organization? [Unknown]: Company What is the name of your City or Locality? [Unknown]: City What is the name of your State or Province? [Unknown]: State What is the two-letter country code for this unit? [Unknown]: US Is CN=Name, OU=Unit, O=Company, L=City, ST=State, C=US correct? [no]: yes

Seperti yang disebutkan, jika kita belum membuat keystore sebelumnya, membuat sertifikat ini akan membuatnya secara otomatis.

Kami juga dapat menjalankan opsi -genkeypair tanpa parameter. Jika kami tidak menyediakannya di baris perintah dan wajib, kami akan diminta untuk itu.

Perhatikan bahwa secara umum disarankan untuk tidak memberikan sandi ( -keypass atau -storepass ) pada baris perintah di lingkungan produksi .

4. Mencantumkan Sertifikat di Keystore

Selanjutnya, kita akan belajar bagaimana melihat sertifikat yang disimpan di keystore kita. Untuk tujuan ini, kami akan menggunakan opsi -list :

keytool -list -storepass  

Output dari perintah yang dieksekusi akan menunjukkan sertifikat yang telah kita buat:

Keystore type: JKS Keystore provider: SUN Your keystore contains 1 entry cert1, 02-ago-2020, PrivateKeyEntry, Certificate fingerprint (SHA1): 0B:3F:98:2E:A4:F7:33:6E:C4:2E:29:72:A7:17:E0:F5:22:45:08:2F

Jika kita ingin mendapatkan informasi untuk sertifikat konkret , kita hanya perlu memasukkan opsi -alias ke perintah kita. Untuk mendapatkan informasi lebih lanjut daripada yang disediakan secara default, kami juga akan menambahkan opsi -v (verbose):

keytool -list -v -alias  -storepass  

Ini akan memberi kami semua informasi yang terkait dengan sertifikat yang diminta:

Alias name: cert1 Creation date: 02-ago-2020 Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate[1]: Owner: CN=Name, OU=Unit, O=Company, L=City, ST=State, C=US Issuer: CN=Name, OU=Unit, O=Company, L=City, ST=State, C=US Serial number: 11d34890 Valid from: Sun Aug 02 20:25:14 CEST 2020 until: Mon Aug 02 20:25:14 CEST 2021 Certificate fingerprints: MD5: 16:F8:9B:DF:2C:2F:31:F0:85:9C:70:C3:56:66:59:46 SHA1: 0B:3F:98:2E:A4:F7:33:6E:C4:2E:29:72:A7:17:E0:F5:22:45:08:2F SHA256: 8C:B0:39:9F:A4:43:E2:D1:57:4A:6A:97:E9:B1:51:38:82:0F:07:F6:9E:CE:A9:AB:2E:92:52:7A:7E:98:2D:CA Signature algorithm name: SHA256withDSA Subject Public Key Algorithm: 2048-bit DSA key Version: 3 Extensions: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: A1 3E DD 9A FB C0 9F 5D B5 BE 2E EC E2 87 CD 45 .>.....].......E 0010: FE 0B D7 55 ...U ] ]

5. Fitur Lainnya

Terlepas dari fungsionalitas yang telah kita lihat, ada banyak fitur tambahan yang tersedia di alat ini.

Misalnya, kami dapat menghapus sertifikat yang kami buat dari keystore:

keytool -delete -alias  -storepass 

Contoh lainnya adalah kita bahkan dapat mengubah alias dari sertifikat :

keytool -changealias -alias  -destalias  -keypass  -storepass 

Terakhir, untuk mendapatkan lebih banyak informasi tentang alat tersebut, kita dapat meminta bantuan melalui baris perintah:

keytool -help

6. Kesimpulan

Dalam tutorial singkat ini, kita telah belajar sedikit tentang utilitas keytool . Kami juga telah belajar menggunakan beberapa fitur dasar yang disertakan dalam alat ini.

Jawa bawah

Saya baru saja mengumumkan kursus Learn Spring baru , yang berfokus pada dasar-dasar Spring 5 dan Spring Boot 2:

>> LIHAT KURSUSnya