2 Stimmen

Erstellen einer Sicherheitsausnahme für ein selbstsigniertes Zertifikat

Ich habe einen Debian-Rechner, den ich über SSL mit einem entfernten Server verbinden möchte. Der entfernte Server hat ein selbstsigniertes Zertifikat. Wie kann ich meinen lokalen Rechner anweisen, eine permanente Sicherheitsausnahme für den entfernten Rechner zu erstellen?

Hinweis: Ich benötige eine Befehlszeilenmethode für diese Aufgabe

3voto

Kevin Punkte 485

Die Methode, die ich dazu gefunden habe, basiert auf dem Material unter http://www.madboa.com/geek/openssl/

Schritt 1: Beschaffung der Bescheinigung

das Skript get-cert.sh verwenden

#!/bin/sh
# 
# usage: retrieve-cert.sh remote.host.name [port]
#
REMHOST=$1
REMPORT=${2:-443}

echo |\
openssl s_client -connect ${REMHOST}:${REMPORT} 2>&1 |\
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'

Holen Sie die Zertifikatsdatei und speichern Sie sie in /usr/lib/ssl/certs mit der Erweiterung .pem

Schritt 2: Erzeugen eines Hashes für das Zertifikat

#!/bin/sh
#
# usage: certlink.sh filename [filename ...]

for CERTFILE in $*; do
  # make sure file exists and is a valid cert

  test -f "$CERTFILE" || continue
  HASH=$(openssl x509 -noout -hash -in "$CERTFILE")
  test -n "$HASH" || continue

  # use lowest available iterator for symlink
  for ITER in 0 1 2 3 4 5 6 7 8 9; do
    test -f "${HASH}.${ITER}" && continue
    ln -s "$CERTFILE" "${HASH}.${ITER}"
    test -L "${HASH}.${ITER}" && break
  done
done

Führen Sie das Skript certlink.sh mit der in Schritt 1 heruntergeladenen Datei aus, und schon sind Sie fertig.

Der Speicherort der cert-Dateien kann je nach Betriebssystem variieren.

0voto

Jonathan Leffler Punkte 694013

Können Sie nicht einfach den Remote-Server und seinen Schlüssel zur Liste der bekannten Hosts hinzufügen?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X