Rumah  >  Artikel  >  Java  >  Java menggunakan openssl untuk mengesan sama ada tapak web menyokong ocsp

Java menggunakan openssl untuk mengesan sama ada tapak web menyokong ocsp

WBOY
WBOYke hadapan
2022-09-15 15:26:042506semak imbas

Artikel ini membawa anda pengetahuan yang berkaitan tentang java Protokol Status Sijil Dalam Talian OCSP dicadangkan untuk menggantikan pelayan web moden secara amnya menyokong OCSP juga merupakan konfigurasi standard pelayan web moden melihatnya saya harap ia akan membantu semua orang.

Java menggunakan openssl untuk mengesan sama ada tapak web menyokong ocsp

Kajian yang disyorkan: "tutorial video java"

Protokol Status Sijil Dalam Talian OCSP telah dicadangkan untuk menggantikan CRL. Pelayan web moden secara amnya menyokong OCSP, dan OCSP juga adalah standard untuk pelayan web moden.

Tetapi stapling OCSP tidak disokong oleh semua pelayan web. Tetapi dalam kerja sebenar, kita mungkin perlu mengetahui sejauh mana tapak web tertentu menyokong OCSP.

Tapak web yang menyokong stapling OCSP

Bagaimana untuk menentukan sama ada tapak web menyokong stapling OCSP?

Cara paling mudah ialah pergi ke tapak web pihak ketiga untuk menyemak maklumat sijil tapak web tersebut. Sebagai contoh, kami menyebut entrust.ssllabs.com sebelum ini Dengan memasukkan maklumat tapak web yang sepadan, dalam bahagian
Butiran Protokol, anda boleh mendapatkan maklumat khusus tentang sama ada tapak web menyokong stapling OCSP, seperti yang ditunjukkan di bawah:

<.>

Anda boleh melihat bahawa tapak web ini telah mendayakan stapling OCSP. Tetapi sebenarnya, kebanyakan laman web di dunia tidak mendayakan stapling OCSP.

Jadi selain menyemak stapling OCSP pada tapak web pihak ketiga, adakah terdapat cara lain?

Malah kita boleh melakukan ini dengan mudah menggunakan artifak openssl. Sudah tentu, premisnya ialah laman web ini menyokong https.

Seterusnya kami akan menerangkan secara terperinci keseluruhan proses daripada mendapatkan sijil pelayan sehinggalah mengesahkan sama ada pelayan menyokong stapling OCSP.

Tapak web yang akan disahkan dalam artikel ini ialah tapak web rasmi Microsoft www.squarespace.com, iaitu tapak web yang menyokong stapling OCSP.

Dapatkan sijil pelayan

Untuk mengesahkan sama ada pelayan menyokong OSCP, kami perlu mendapatkan sijil pelayan terlebih dahulu Anda boleh menggunakan openssl s_client -connect yang disediakan oleh openssl untuk menyelesaikan kerja ini.

 openssl s_client -connect www.squarespace.com:443
Arahan ini akan mengeluarkan semua kandungan penubuhan sambungan, termasuk maklumat sijil tapak web untuk diakses.

Oleh kerana kami hanya memerlukan sijil tapak web, kami perlu menyimpan kandungan antara

dan -----BEGIN CERTIFICATE-----. -----END CERTIFICATE-----

Kemudian arahan terakhir adalah seperti berikut:

openssl s_client -connect www.squarespace.com:443 | sed -n &#39;/-----BEGIN/,/-----END/p&#39; > ca.pem
Di sini kita menggunakan arahan sed -n untuk memintas data bermula dengan

dan berakhir dengan -----BEGIN daripada output. -----END

Akhirnya kami mendapat sijil untuk laman web tersebut.

Selain sijil tapak web itu sendiri, sijil tapak web itu sendiri ditandatangani oleh sijil lain. Kami perlu mendapatkan keseluruhan rantaian sijil.

Juga gunakan perintah

openssl untuk mendapatkan semua rantai sijil: openssl s_client -showcerts

openssl s_client -showcerts  -connect www.squarespace.com:443 | sed -n &#39;/-----BEGIN/,/-----END/p&#39; > chain.pem
Jika anda membuka fail chain.pem, anda boleh mendapati terdapat dua sijil dalam fail, satu atas Satu ialah sijil pelayan itu sendiri, dan yang kedua ialah sijil perantaraan yang digunakan untuk menandatangani sijil pelayan.

Dapatkan alamat responder OCSP

Jika sijil mengandungi alamat responder OCSP, anda boleh menggunakan arahan berikut untuk mendapatkannya:

openssl x509 -noout -ocsp_uri -in ca.pem
Kami boleh mendapatkan OCSP tapak web Alamat responden ialah:

. http://ocsp.digicert.com

Terdapat cara lain untuk mendapatkan alamat responder ocsp:

openssl x509 -text -noout -in ca.pem
Arahan ini akan mengeluarkan semua maklumat sijil, kita boleh melihat kandungan berikut:

 Authority Information Access:
                OCSP - URI:http://ocsp.digicert.com
                CA Issuers - URI:http://cacerts.digicert.com/DigiCertTLSRSASHA2562020CA1-1.crt
Di mana OCSP-URI ialah alamat responden OCSP.

Hantar permintaan OCSP

Dengan alamat responden OCSP, kami boleh melakukan pengesahan OCSP Dalam arahan ini, kami perlu menggunakan sijil pelayan dan sijil perantaraan.

Arahan permintaan khusus adalah seperti berikut:

openssl ocsp -issuer chain.pem -cert ca.pem -text -url http://ocsp.digicert.com
Kita boleh mendapatkan dua bahagian daripada output Bahagian pertama ialah Data Permintaan OCSP, iaitu data permintaan OCSP:

OCSP Request Data:
    Version: 1 (0x0)
    Requestor List:
        Certificate ID:
          Hash Algorithm: sha1
          Issuer Name Hash: 521EE36C478119A9CB03FAB74E57E1197AF1818B
          Issuer Key Hash: 09262CA9DCFF639140E75867E2083F74F6EAF165
          Serial Number: 120014F1EC2395D56FDCC4DCB700000014F1EC
    Request Extensions:
        OCSP Nonce:
            04102873CFC7831AB971F3FDFBFCF3953EC5
Daripada data permintaan, kita dapat melihat struktur data permintaan OCSP yang terperinci, termasuk kandungan pengeluar dan bukan OCSP.

Bahagian kedua ialah data respons Malangnya, kami mendapat data respons ralat permintaan berikut:

OCSP Response Data:
    OCSP Response Status: successful (0x0)
    Response Type: Basic OCSP Response
    Version: 1 (0x0)
    Responder Id: B76BA2EAA8AA848C79EAB4DA0F98B2C59576B9F4
    Produced At: Apr 30 04:36:26 2022 GMT
    Responses:
    Certificate ID:
      Hash Algorithm: sha1
      Issuer Name Hash: E4E395A229D3D4C1C31FF0980C0B4EC0098AABD8
      Issuer Key Hash: B76BA2EAA8AA848C79EAB4DA0F98B2C59576B9F4
      Serial Number: 0F21C13200AE502D52BBE8DFEAB0F807
    Cert Status: good
    This Update: Apr 30 04:21:01 2022 GMT
    Next Update: May  7 03:36:01 2022 GMT
Dalam hasil yang dikembalikan di atas, Status Sijil: baik bermakna permintaan OCSP adalah. berjaya. , laman web ini ialah tapak web yang menyokong protokol OCSP. Dua baris selepas

ialah masa kemas kini terakhir OCSP dan masa kemas kini seterusnya:

    This Update: Apr 30 04:21:01 2022 GMT
    Next Update: May  7 03:36:01 2022 GMT
Menunjukkan bahawa tapak web ini juga menyokong stapling OCSP.

Selain itu, apabila meminta url OCSP sesetengah tapak web, anda mungkin mendapat pengecualian berikut:

Error querying OCSP responder
4346349100:error:27FFF072:OCSP routines:CRYPTO_internal:server response error:/AppleInternal/Library/BuildRoots/66382bca-8bca-11ec-aade-6613bcf0e2ee/Library/Caches/com.apple.xbs/Sources/libressl/libressl-2.8/crypto/ocsp/ocsp_ht.c:251:Code=400,Reason=Bad Request
Mengapa ini?

Ini kerana tapak web ocsp.msocsp.com tidak menyokong permintaan HTTP 1.0 lalai OCSP Dalam permintaan HTTP 1.0, tiada pengepala permintaan Hos secara lalai. Jadi kita perlu menambah pengepala permintaan Hos dan kemudian laksanakannya semula.

Kaedah yang lebih mudah

Kami sebenarnya membahagikan permintaan dan melaksanakannya langkah demi langkah. Kami juga boleh menggunakan openssl untuk melaksanakan tugas dalam satu langkah seperti berikut:

openssl s_client -tlsextdebug -status -connect www.squarespace.com:443

从输出中,我们可以看到下面的数据:

OCSP response:
======================================
OCSP Response Data:
    OCSP Response Status: successful (0x0)
    Response Type: Basic OCSP Response
    Version: 1 (0x0)
    Responder Id: B76BA2EAA8AA848C79EAB4DA0F98B2C59576B9F4
    Produced At: Apr 27 04:36:26 2022 GMT
    Responses:
    Certificate ID:
      Hash Algorithm: sha1
      Issuer Name Hash: E4E395A229D3D4C1C31FF0980C0B4EC0098AABD8
      Issuer Key Hash: B76BA2EAA8AA848C79EAB4DA0F98B2C59576B9F4
      Serial Number: 0F21C13200AE502D52BBE8DFEAB0F807
    Cert Status: good
    This Update: Apr 27 04:21:02 2022 GMT
    Next Update: May  4 03:36:02 2022 GMT

上面的命令直接输出了OCSP response结果,从结果中我们很清楚的看到该网站是否支持OCSP和OCSP stapling。

推荐学习:《java视频教程

Atas ialah kandungan terperinci Java menggunakan openssl untuk mengesan sama ada tapak web menyokong ocsp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:jb51.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam