Table des matières
Sites Web prenant en charge l'agrafage OCSP
Obtenir le certificat du serveur
获取OCSP responder地址
Maison Java javaDidacticiel Java utilise openssl pour détecter si le site Web prend en charge ocsp

Java utilise openssl pour détecter si le site Web prend en charge ocsp

Sep 15, 2022 pm 03:26 PM
java

Cet article vous apporte des connaissances pertinentes sur java. Le protocole d'état des certificats en ligne OCSP a été proposé pour remplacer la CRL ; les serveurs Web modernes prennent généralement en charge OCSP, et OCSP est également pris en charge par la configuration standard, jetons-y un coup d'œil. J'espère que cela sera utile à tout le monde.

Java utilise openssl pour détecter si le site Web prend en charge ocsp

Étude recommandée : "Tutoriel vidéo Java"

Le protocole de statut de certificat en ligne OCSP a été proposé pour remplacer la CRL. Les serveurs Web modernes prennent généralement en charge OCSP, et OCSP est également la norme pour les serveurs Web modernes.

Mais tous les serveurs Web ne prennent pas en charge l'agrafage OCSP. Mais dans le travail réel, nous aurons peut-être besoin de savoir dans quelle mesure un site Web spécifique prend en charge OCSP.

Sites Web prenant en charge l'agrafage OCSP

Comment déterminer si un site Web prend en charge l'agrafage OCSP ?

Le moyen le plus simple consiste à accéder à un site Web tiers pour vérifier les informations de certificat du site Web. Par exemple, nous avons déjà mentionné entrust.ssllabs.com En saisissant les informations du site Web correspondantes, dans la section
Détails du protocole, vous pouvez trouver les informations spécifiques indiquant si le site Web prend en charge l'agrafage OCSP, comme indiqué ci-dessous :

Vous peut voir Lorsque vous accédez à ce site Web, l'agrafage OCSP est activé. Mais en réalité, la plupart des sites Web dans le monde ne permettent pas l’agrafage OCSP.

En plus de vérifier l'agrafage OCSP sur des sites Web tiers, existe-t-il un autre moyen ?

En fait, nous pouvons le faire facilement en utilisant l'artefact openssl. Bien entendu, le principe est que ce site Web prend en charge https.

Ensuite, nous expliquerons en détail l'ensemble du processus depuis l'obtention du certificat du serveur jusqu'à la vérification si le serveur prend en charge l'agrafage OCSP.

Le site Web à vérifier dans cet article est le site Web officiel de Microsoft www.squarespace.com, qui est un site Web prenant en charge l'agrafage OCSP.

Obtenir le certificat du serveur

Pour vérifier si le serveur prend en charge OSCP, nous devons d'abord obtenir le certificat du serveur. Vous pouvez utiliser openssl s_client -connect fourni par openssl pour terminer ce travail.

 openssl s_client -connect www.squarespace.com:443
Copier après la connexion

Cette commande affichera tout le contenu de l'établissement de connexion, y compris les informations de certificat du site Web auquel accéder.

Parce que nous n'avons besoin que du certificat du site Web, nous devons mettre -----BEGIN CERTIFICATE----- et -----END CERTIFICATE-----< / Enregistrez simplement le contenu entre le code>. <code>-----BEGIN CERTIFICATE----------END CERTIFICATE-----之间的内容保存即可。

那么最终的命令如下:

openssl s_client -connect www.squarespace.com:443 | sed -n &#39;/-----BEGIN/,/-----END/p&#39; > ca.pem
Copier après la connexion

这里我们使用一个sed -n命令从输出中截取以-----BEGIN开头和以-----END结尾的数据。

最终我们得到了网站的证书。

除了网站本身的证书之外,网站的证书本身是由其他的证书来签发的,这些证书叫做intermediate certificate,我们需要获取到整个证书链。

同样使用openssl的openssl s_client -showcerts命令可以获取所有的证书链:

openssl s_client -showcerts  -connect www.squarespace.com:443 | sed -n &#39;/-----BEGIN/,/-----END/p&#39; > chain.pem
Copier après la connexion

如果你打开chain.pem文件可以发现,文件里面有两个证书,最上面的一个就是服务器本身的证书,而第二个就是用于签名服务器证书的intermediate certificate。

获取OCSP responder地址

如果证书中包含有OCSP responder的地址,那么可以用下面的命令来获取:

openssl x509 -noout -ocsp_uri -in ca.pem
Copier après la connexion

我们可以得到网站的ocsp responder地址是:http://ocsp.digicert.com

Ensuite, la commande finale est la suivante :

openssl x509 -text -noout -in ca.pem
Copier après la connexion

Ici, nous utilisons une commande sed -n pour intercepter la sortie commençant par -----BEGIN et se terminant par ---- -END< Données à la fin de /code>. <p></p>Enfin, nous avons obtenu le certificat du site Internet. <p></p>En plus du certificat du site Web lui-même, le certificat du site Web lui-même est signé par d'autres certificats. Ces certificats sont appelés certificats intermédiaires. Nous devons obtenir l'intégralité de la chaîne de certificats. <h2></h2>Utilisez également la commande <code>openssl s_client -showcerts d'openssl pour obtenir toutes les chaînes de certificats :

 Authority Information Access:
                OCSP - URI:http://ocsp.digicert.com
                CA Issuers - URI:http://cacerts.digicert.com/DigiCertTLSRSASHA2562020CA1-1.crt
Copier après la connexion

Si vous ouvrez le fichier chain.pem, vous pouvez constater qu'il y a deux certificats dans le fichier, celui du haut est le certificat du serveur lui-même, et le second est le certificat intermédiaire utilisé pour signer le certificat du serveur.

Obtenir l'adresse du répondeur OCSP

Si le certificat contient l'adresse du répondeur OCSP, vous pouvez utiliser la commande suivante pour l'obtenir :

openssl ocsp -issuer chain.pem -cert ca.pem -text -url http://ocsp.digicert.com
Copier après la connexion

Nous pouvons obtenir l'adresse du répondeur ocsp du site Web : http:/ /ocsp.digicert .com.

Il existe une autre façon d'obtenir l'adresse du répondeur 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
Copier après la connexion

Cette commande affichera toutes les informations du certificat, nous pouvons voir le contenu suivant :

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
Copier après la connexion

où OCSP - URI est l'adresse du répondeur OCSP .

Envoyer la demande OCSP

Avec l'adresse du répondeur OCSP, nous pouvons effectuer la vérification OCSP. Dans cette commande, nous devons utiliser le certificat et le certificat intermédiaire du serveur.

La commande de requête spécifique est la suivante :

    This Update: Apr 30 04:21:01 2022 GMT
    Next Update: May  7 03:36:01 2022 GMT
Copier après la connexion

Nous pouvons obtenir deux parties de la sortie. La première partie est les données de requête OCSP, qui sont les données de la requête OCSP :

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
Copier après la connexion

À partir des données de la requête, nous pouvons voir le détail. Structure des données de la demande OCSP, y compris le contenu de l'émetteur et le nom occasionnel OCSP.

La deuxième partie concerne les données de réponse. Malheureusement, nous avons obtenu les données de réponse d'erreur de requête suivantes : 🎜
openssl s_client -tlsextdebug -status -connect www.squarespace.com:443
Copier après la connexion
Copier après la connexion
🎜Dans le résultat renvoyé ci-dessus, Statut du certificat : bon signifie que la requête OCSP a réussi. Protocole OCSP. 🎜🎜Les deux lignes suivantes sont l'heure de la dernière mise à jour d'OCSP et l'heure de la prochaine mise à jour : 🎜
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
Copier après la connexion
Copier après la connexion
🎜Indique que ce site Web prend également en charge l'agrafage OCSP. 🎜🎜De plus, lorsque vous demandez l'URL OCSP de certains sites Web, vous pouvez obtenir l'exception suivante : 🎜rrreee🎜Pourquoi est-ce ? 🎜🎜En effet, le site Web ocsp.msocsp.com ne prend pas en charge la requête HTTP 1.0 par défaut d'OCSP. Dans la requête HTTP 1.0, il n'y a pas d'en-tête de requête Host par défaut. Nous devons donc ajouter l’en-tête de requête Host, puis l’exécuter à nouveau. 🎜🎜Une méthode plus simple🎜🎜Dans ce qui précède, nous avons divisé la demande et l'avons exécutée étape par étape. Nous pouvons également utiliser openssl pour effectuer des tâches en une seule étape comme suit : 🎜
openssl s_client -tlsextdebug -status -connect www.squarespace.com:443
Copier après la connexion
Copier après la connexion

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

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
Copier après la connexion
Copier après la connexion

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

推荐学习:《java视频教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Nombre parfait en Java Nombre parfait en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Weka en Java Weka en Java Aug 30, 2024 pm 04:28 PM

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Horodatage à ce jour en Java Horodatage à ce jour en Java Aug 30, 2024 pm 04:28 PM

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

Programme Java pour trouver le volume de la capsule Programme Java pour trouver le volume de la capsule Feb 07, 2025 am 11:37 AM

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4

Comment exécuter votre première application Spring Boot dans Spring Tool Suite? Comment exécuter votre première application Spring Boot dans Spring Tool Suite? Feb 07, 2025 pm 12:11 PM

Spring Boot simplifie la création d'applications Java robustes, évolutives et prêtes à la production, révolutionnant le développement de Java. Son approche "Convention sur la configuration", inhérente à l'écosystème de ressort, minimise la configuration manuelle, allo

See all articles