Ich versuche, eine POST-Anfrage mit SSL zu erstellen, aber ohne OpenSSL :: SSL :: VERIFY_NONE, weil es Sicherheitsangriffe und ohne PEM-Zertifikat ausgelöst hat. Aber ich fange Probleme, meinen Ruby-Code zum Senden einer POST-Anfrage:
%Vor%Es ist Methode funktioniert, aber er verwendet OpenSSL :: SSL :: VERIFY_NONE. Wie erstelle ich eine Methode zum Senden einer POST-Anfrage ohne OpenSSL :: SSL :: VERIFY_NONE und PEM-Zertifikat?
BEARBEITEN SSL / HTTPS-Anforderung Update: Es gibt einige gute Gründe, warum dieses Codebeispiel schlecht ist. Es stellt eine potenzielle Sicherheitslücke dar, wenn Sie unbedingt das Serverzertifikat verwenden müssen, um die Identität des Servers zu überprüfen, mit dem Sie eine Verbindung herstellen. Es gibt jedoch eine Lösung für das Problem!
%Vor%SSL / HTTPS-Anforderung mit PEM-Zertifikat
%Vor%Meine Frage: Wie erstellt man die POST-Methode ohne PEM und OpenSSL :: SSL :: VERIFY_NONE ?
Diese Frage ist ziemlich irreführend, aber ich versuche mein Bestes, um es herauszufinden. Hier ist mein Rat:
Möchten Sie eine Verbindung zu einem Dienst herstellen, der nur über HTTPS verfügbar ist, und es ist Ihnen egal, ob das Zertifikat gültig ist?
Dann können Sie :verify_mode => OpenSSL::SSL::VERIFY_NONE
verwenden, wenn Sie den Net::HTTP
Client initialisieren.
Sie werden eine Art Transportsicherheit haben, aber Sie können nicht sicher sein, dass der Server, mit dem Sie sprechen, der ist, von dem Sie denken, dass er es ist. Du bist verwundbar.
Möchten Sie eine Verbindung zu einem Dienst herstellen, der sowohl über https als auch http verfügbar ist, und Sie interessieren sich nicht für die Transportsicherheit?
Dann sollten Sie den Endpunkt http://...
verwenden.
Möchten Sie eine Verbindung zu einem Dienst herstellen und sich um Transportsicherheit kümmern?
Dann sollten Sie definitiv den Endpunkt https://...
verwenden.
Überschreibe :verify_mode
nicht!
Wenn Sie Fehler bei der Zertifikatsüberprüfung erhalten, vergewissern Sie sich, dass Sie die richtige Zertifizierungsstelle auf Ihrem System installiert haben.