Как извлечь информацию о сертификате клиента из OpenVPN? - PullRequest
3 голосов
/ 10 февраля 2012

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

Цель состоит в том, чтобы написать скрипт, который не позволит пользователям делиться своими сертификатами с другими. Прямо сейчас любой сертификат будет работать с любым действительным пользователем LDAP.

Когда я устанавливаю script-security 3, который показывает большую часть информации для переменной env, я вижу переменные внизу этого сообщения (фактические значения удалены). Насколько я могу судить, ничто в нем не может быть связано с сертификатом, который использовал пользователь.

Вопрос

Как мне получить клиентский сертификат / идентификатор ключа, чтобы я мог сопоставить его с /etc/openvpn/easy-rsa/2.0/keys/*{.crt,.csr,.key}? Имя файла - имя пользователя LDAP.

* 1016 Е.Г. *

/etc/openvpn/easy-rsa/2.0/keys/bob.crt
/etc/openvpn/easy-rsa/2.0/keys/bob.csr
/etc/openvpn/easy-rsa/2.0/keys/bob.key

Дамп env Переменная

X509_1_OU=
common_name=
route_gateway_1=
ifconfig_remote=
untrusted_ip=
ifconfig_local=
proto_1=
tls_serial_1=
tls_serial_0=
tun_mtu=
X509_1_emailAddress=
tls_id_0=
X509_1_L=
tls_id_1=
X509_1_O=
password=
script_type=
verb=
username=
local_port_1=
config=
X509_0_CN=
dev=
auth_control_file=
X509_1_C=
X509_1_ST=
route_network_1=
remote_port_1=
PWD=
route_net_gateway=
daemon=
X509_1_name=
untrusted_port=
SHLVL=
script_context=
route_vpn_gateway=
route_netmask_1=
daemon_start_time=
X509_0_ST=
daemon_pid=
X509_1_CN=
X509_0_OU=
X509_0_emailAddress=
daemon_log_redirect=
X509_0_C=
X509_0_L=
link_mtu=
X509_0_O=

1 Ответ

1 голос
/ 12 февраля 2012

crt подписано key. Вы не можете изменить crt, не создав новый csr и не подписав его снова key. Я не эксперт, поэтому не знаю, какие именно, но должны быть некоторые поля, которые клиент не может изменить, не нарушив проверку сертификата. Глядя на страницу wiki , мне кажется, что вы не можете изменить атрибуты субъекта (CN и т. Д.).

Итак, если вы проверяете пользователя bob с bob.crt, убедитесь, что в сертификате CN - это bob. Соответствие всем трем из них должно означать, что Боб входит в систему со своим собственным сертификатом.

...