


So erhalten Sie das SSL-Zertifikat und den öffentlichen Schlüssel der Website mithilfe von PHP Socket
Dieser Artikel führt Sie hauptsächlich in die relevanten Informationen über die Verwendung von PHP durch, um das SSL-Zertifikat und den öffentlichen Schlüssel der Website zu erhalten. Der Artikel bietet einen gewissen Referenz- und Lernwert für alle. Es ist nötig, Freunde, schauen wir uns das gemeinsam an.
Beim Anfordern der Webseite über PHP Curl können die Zertifikatsinformationen nicht abgerufen werden. In diesem Fall müssen Sie SSL-Socket verwenden, um den Zertifikatsinhalt abzurufen. Werfen wir einen Blick auf die ausführliche Einführung:
Beispielcode:
// 创建 stream context $context = stream_context_create([ 'ssl' => [ 'capture_peer_cert' => true, 'capture_peer_cert_chain' => true, ], ]); $resource = stream_socket_client("ssl://$domain:$port", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context); $cert = stream_context_get_params($resource); $ssl = $cert['options']['ssl']; $resource = $ssl['peer_certificate']; // 网站证书中只有公钥,通过 openssl_pkey_get_details 导出公钥 $ret = [ 'crt' => '', 'pub' => '', ]; $pkey = openssl_pkey_get_public($resource); $ret['pub'] = openssl_pkey_get_details($pkey)['key']; openssl_x509_export($resource, $pem); $ret['crt'] = $pem; foreach ($ssl['peer_certificate_chain'] as $resource) { openssl_x509_export($resource, $pem); $ret['crt'] .= "\n" . $pem; } // 保存 $ret['crt'] 为 domain.crt // 保存 $ret['pub'] 为 domain.pub return $ret;
Verifizierungszertifikat Ob das Der öffentliche Schlüssel A ist korrekt. Leiten Sie den öffentlichen Schlüssel B über den privaten Schlüssel ab, vergleichen Sie die beiden und stellen Sie fest, dass sie konsistent sind.
$domain = 'blog.zhengxianjun.com'; $port = '443'; // ... $pub_a = $ret['pub']; $private_key_path = '/conf/ssl/blog.zhengxianjun.com.key'; // 证书没有设置密码,$passphrase 为空字符串 $pkey = openssl_pkey_get_private(file_get_content($private_key_path), $passphrase = ''); $pub_b = openssl_pkey_get_details($pkey)['key']; // 两者一致 var_dump($pub_a === $pub_b);
Eine weitere Verwendung der Funktion stream_socket_client besteht darin, den Domänennamen abzurufen, den der Server möglicherweise verwenden kann, wenn die Server-IP bekannt ist.
$resource = stream_socket_client("ssl://$ip:$port", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context); $cert = stream_context_get_params($resource); // 解析 X.509 格式证书 $info = openssl_x509_parse($cert['options']['ssl']['peer_certificate']); // 获取证书中的可信域名列表 $domain = str_replace('DNS:', '', $info['extensions']['subjectAltName']);
Wie Sie oben sehen können, ermöglicht Ihnen der Erhalt des Website-Zertifikats nicht, den privaten Schlüssel zu erhalten.
Müssen Sie auf einigen Websites, die CDN verwenden, Ihren privaten Schlüssel dem CDN-Anbieter zur Verfügung stellen, wenn Sie HTTPS verwenden und Ihren eigenen Domänennamen verwenden möchten? Tatsächlich müssen der Zertifikatspfad und der Benutzername (Domänenname, der https unterstützt) nicht konsistent sein.
Das heißt, wenn Sie Ihren eigenen Domänennamen verwenden und eine CDN-Beschleunigung durchführen, müssen Sie kein eigenes SSL-Zertifikat verwenden. Sie müssen lediglich Ihren eigenen CDN-Domänennamen zur Domänennamenliste des Herstellerzertifikats hinzufügen .
Verwandte Empfehlungen:
PHP-Implementierung von WebSocketDetaillierte Schritte für Echtzeit-Nachrichten-Push
Das obige ist der detaillierte Inhalt vonSo erhalten Sie das SSL-Zertifikat und den öffentlichen Schlüssel der Website mithilfe von PHP Socket. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

In PHP können Sie Session_Status () oder Session_id () verwenden, um zu überprüfen, ob die Sitzung gestartet wurde. 1) Verwenden Sie die Funktion Session_Status (). Wenn PHP_Session_Active zurückgegeben wird, wurde die Sitzung gestartet. 2) Verwenden Sie die Funktion Session_id (), wenn eine nicht leere Zeichenfolge zurückgegeben wird, die Sitzung gestartet wurde. Beide Methoden können den Sitzungszustand effektiv überprüfen, und die Auswahl der Verwendung von Methoden hängt von der PHP -Version und den persönlichen Einstellungen ab.

SESSIONS AREVITALINWEBAPPLIKATIONEN, Besonders vor den Commerceplatformen

Verwalten des gleichzeitigen Sitzungszugriffs in PHP kann mit den folgenden Methoden erfolgen: 1. Verwenden Sie die Datenbank, um Sitzungsdaten zu speichern, 2.. Diese Methoden tragen dazu bei, die Datenkonsistenz sicherzustellen und die Gleichzeitleistung zu verbessern.

PhpSessionShaveseverallimitationen: 1) StorageConstraintScanleadtoperformanceISSues; 2) SecurityVulnerabilitieslikeSessionFixationAtpaSexist; 3) Skalierbarkeits-IschallengingDuetoServer-spezifisch; 4) SessionExpirationManbeproblematic;

Lastausgleich beeinflusst das Sitzungsmanagement, kann jedoch durch Sitzungsreplikation, Sitzungsklebrigkeit und zentraler Sitzungsspeicher gelöst werden. 1. Sitzungsreplikationsdaten zwischen Servern. 2. Session Stickiness lenkt Benutzeranfragen auf denselben Server. 3. Zentraler Sitzungsspeicher verwendet unabhängige Server wie Redis, um Sitzungsdaten zu speichern, um die Datenfreigabe zu gewährleisten.

SessionLockingIsatechniqueUTToensureUsers'SSessionSessionSeSexclusivetooneuseratatim.itiscrialtforpreventingDatacorruptionandSecurityBreachesinmulti-UserApplications

Zu den Alternativen zu PHP-Sitzungen gehören Cookies, Token-basierte Authentifizierung, datenbankbasierte Sitzungen und Redis/Memcached. 1. Kookies verwalten Sitzungen, indem sie Daten über den Kunden speichern, was einfach, aber nur gering ist. 2. Altbasierte Authentifizierung verwendet Token, um Benutzer zu überprüfen, was sehr sicher ist, aber zusätzliche Logik erfordert. 3.Database-basiertssesses speichert Daten in der Datenbank, was eine gute Skalierbarkeit aufweist, die Leistung jedoch beeinflusst. V.

Sessionhijacking bezieht sich auf einen Angreifer, der sich als Benutzer ausgibt, indem die SessionID des Benutzers angezeigt wird. Zu den Präventionsmethoden gehören: 1) Verschlüsseln der Kommunikation mit HTTPS; 2) Überprüfung der Quelle der SessionID; 3) mit einem sicheren Algorithmus zur Sitzung der Sitzung; 4) regelmäßig aktualisieren die SitzungID.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!
