Создание исключения безопасности для самозаверяющего сертификата - PullRequest
1 голос
/ 04 августа 2009

У меня есть ящик Debian, с которым я хотел бы поговорить с удаленным сервером по SSL. Удаленный сервер имеет самозаверяющий сертификат. Как я могу указать моему локальному компьютеру создать постоянное исключение безопасности для удаленного компьютера?

Примечание: мне нужен метод командной строки для этого

Ответы [ 2 ]

2 голосов
/ 07 августа 2009

Метод, который я нашел для этого, основан на материале http://www.madboa.com/geek/openssl/

Шаг 1: получить сертификат

используйте скрипт get-cert.sh

#!/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'

получить файл сертификата и сохранить его в / usr / lib / ssl / certs с расширением .pem

Шаг 2: создайте хэш для сертификата

#!/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

запустите сценарий certlink.sh для файла, который вы загрузили на шаге 1, и тогда все готово.

Расположение файлов сертификата зависит от вашей операционной системы.

0 голосов
/ 04 августа 2009

Не можете ли вы просто добавить удаленный сервер и его ключ в список известных хостов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...