GNU/Linux >> Belajar Linux >  >> Linux

Menggunakan openssl untuk mendapatkan sertifikat dari server

Meskipun saya setuju dengan jawaban Ari (dan memutakhirkannya :), saya perlu melakukan langkah ekstra untuk membuatnya berfungsi dengan Java di Windows (yang perlu diterapkan):

openssl s_client -showcerts -connect www.example.com:443 < /dev/null | openssl x509 -outform DER > derp.der

Sebelum menambahkan openssl x509 -outform DER konversi, saya mendapatkan kesalahan dari keytool di Windows yang mengeluh tentang format sertifikat. Mengimpor file .der berfungsi dengan baik.


Ternyata ada lebih banyak kerumitan di sini:Saya perlu memberikan lebih banyak detail untuk memulai ini. Saya pikir ini ada hubungannya dengan fakta bahwa ini adalah koneksi yang memerlukan autentikasi klien, dan hankshake memerlukan lebih banyak info untuk melanjutkan ke tahap di mana sertifikat dibuang.

Ini perintah kerja saya:

openssl s_client -connect host:port -key our_private_key.pem -showcerts \
                 -cert our_server-signed_cert.pem

Mudah-mudahan ini adalah dorongan ke arah yang benar bagi siapa saja yang bisa melakukan dengan info lebih lanjut.


One-liner untuk mengekstrak sertifikat dari server jarak jauh dalam format PEM, kali ini menggunakan sed :

openssl s_client -connect www.google.com:443 2>/dev/null </dev/null |  sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'

Dengan SNI

Jika server jarak jauh menggunakan SNI (yaitu, berbagi beberapa host SSL pada satu alamat IP), Anda harus mengirimkan nama host yang benar untuk mendapatkan sertifikat yang tepat.

openssl s_client -showcerts -servername www.example.com -connect www.example.com:443 </dev/null

Tanpa SNI

Jika remote server tidak menggunakan SNI, maka Anda dapat melewati -servername parameter:

openssl s_client -showcerts -connect www.example.com:443 </dev/null


Untuk melihat detail lengkap sertifikat situs, Anda juga dapat menggunakan rantai perintah ini:

$ echo | \
    openssl s_client -servername www.example.com -connect www.example.com:443 2>/dev/null | \
    openssl x509 -text

Linux
  1. Kesalahan OpenCA Tidak dapat memuat sertifikat dari database

  2. Menggunakan log server

  3. Bagaimana cara mengunduh file dari server menggunakan SSH?

  1. Menggunakan Stratis untuk mengelola penyimpanan Linux dari baris perintah

  2. Menggunakan Reddit dari konsol pada tahun 2020

  3. Bagaimana cara mendapatkan sistem operasi saat ini di MSBuild?

  1. Hubungkan ke Linux dari Mac OS X dengan menggunakan Terminal

  2. Terhubung ke Linux dari Windows dengan menggunakan Putty

  3. Migrasi server Linux dari baris perintah