Как проверить соединение с удаленным сервером с цифровым сертификатом (аутентификация клиента)

Я получил цифровой сертификат с расширениями для аутентификации сервера и аутентификации клиента и закрытого ключа.

Теперь я хочу соединиться с удаленным сервером (веб-сервисы REST), который должен принять мои запросы из-за моего сертификата. Как первый шаг я хочу проверить, будет ли это соединение работать. Удаленный сервер не находится под моим контролем.

У меня есть этот URL REST https://host.test.com/REST/admin/user/1212/, и я должен сделать запрос с сертификатом. Таким образом, как я могу сделать это через командную строку (система Linux)?

0
задан 3 August 2014 в 13:08
2 ответа

Вы можете использовать curl или wget.

curl --cert <your cert>

или

wget --certificate=<yourt cert>

Сертификат (конечно, с приватным ключом) должен находиться в файле p12. Вы можете указать парольную фразу для этого файла.

1
ответ дан 4 December 2019 в 17:20

Вы можете использовать openssl s_client для проверки сертификата на действительность.

openssl s_client -connect www.google.com -CApath /usr/share/ca-certificates

Это дает мне:

[mark@pericles ~]$ openssl s_client -connect www.google.de:443 -CApath /usr/share/ca-certificates/
CONNECTED(00000004)
depth=3 C = US, O = Equifax, OU = Equifax Secure Certificate Authority
verify return:1
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify return:1
depth=1 C = US, O = Google Inc, CN = Google Internet Authority G2
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google Inc, CN = google.com
verify return:1
---
Certificate chain
 0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=google.com
   i:/C=US/O=Google Inc/CN=Google Internet Authority G2
 1 s:/C=US/O=Google Inc/CN=Google Internet Authority G2
   i:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
 2 s:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
   i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority
---
<snip>
    Verify return code: 0 (ok)
---

Параметр -CApath указывает на сертификаты ЦС для проверки на действительность. Я нахожусь на Arch Linux, поэтому они находятся в /usr/share/ca-сертификатах.

Это очень удобно при отладке развернутых вами сертификатов, но столь же полезно, когда у вас нет контроля над другой стороной.

Чтобы использовать клиентский сертификат, добавьте следующее в командную строку s_client:

-cert xxx.pem -key xxx.pem

Здесь xxx.pem содержит как клиентский сертификат, так и ключ. Просто передайте его обеим опциям.

0
ответ дан 4 December 2019 в 17:20

Теги

Похожие вопросы