OpenSSL verify chain cerificate and CRL
Форум — Security
Здравствуйте, не уверен, что если спросить кратко, то будет понятна суть вопроса, поэтому я изложу по порядку:
Цель:
- Развернуть на ноутбуке (не подключенном к сети) с Windows 7 центр сертификации на OpenSSL
- Развернуть на сервере freeRADIUS2 для EAP-TLS аутентификации мобильных терминалов
Шаги по воплощению:
1. устанавливаю дистрибутив OpenSSL 0.9.8y
2. Генерирую корневй ключ и сертификат:
openssl req -new -x509 -keyout ca_wifi.key -out ca_wifi.pem -days 8500 -config ca_wifi.cnf
openssl x509 -inform PEM -outform DER -in ca_wifi.pem -out ca_wifi.der
openssl req -new -out server_radius.csr -keyout server_radius.key -config server_radius.cnf
openssl ca -batch -keyfile ca_wifi.key -cert ca_wifi.pem -in server_radius.csr -key %PASSWORD_CA% -out server_radius.crt -extensions xpserver_ext -extfile xpextensions -config ca_wifi.cnf
openssl pkcs12 -export -in server_radius.crt -inkey server_radius.key -out server_radius.p12 -passin pass:%PASSWORD_SRV% -passout pass:%PASSWORD_SRV%
openssl pkcs12 -in server_radius.p12 -out server_radius.pem -passin pass:%PASSWORD_SRV% -passout pass:%PASSWORD_SRV%
openssl verify -CAfile ca_wifi.pem server_radius.pem
openssl req -new -out motorola001.csr -keyout motorola001.key -config motorola001
openssl ca -batch -keyfile ca_wifi.key -cert ca_wifi.pem -in motorola001.csr -key %PASSWORD_CA% -out motorola001.crt -extensions xpclient_ext -extfile xpextensions -config ca_wifi.cnf
openssl pkcs12 -export -in motorola001.crt -inkey motorola001.key -out motorola001.p12 -passin pass:%PASSWORD_CLNT001% -passout pass:%PASSWORD_CLNT001%
openssl pkcs12 -in motorola001.p12 -out motorola001.pem -passin pass:%PASSWORD_CLNT001% -passout pass:%PASSWORD_CLNT001%
openssl verify -CAfile ca_wifi.pem motorola001.pem
openssl ca -gencrl -keyfile ca_wifi.key -key %PASSWORD_CA% -cert ca_wifi.pem -out crl_wifi.pem -config ca_wifi.cnf
TYPE ca_wifi.pem crl_wifi.pem > ca_and_crl_wifi.pem
8. Конфигурирую freeRADIUS2 и в eap.conf прописываю:
...
private_key_password = *****
private_key_file = ${certdir}/server_aztpa_radius.pem
certificate_file = ${certdir}/server_aztpa_radius.pem
CA_file = ${cadir}/ca_and_crl_aztpa_wifi.pem
dh_file = ${certdir}/dh
check_crl = yes
...
openssl verify -crl_check -CAfile ca_and_crl_aztpa_wifi.pem motorola001.pem
Вопрос: как добиться такого же «счастья» если я подписываю сертификат клиента не корневым ключом, а, например, серверным?
Т.е. генерирую ключ и сертификат (подписанный серверным ключом) для второго клиента:
openssl req -new -out motorola002.csr -keyout motorola002.key -config motorola002.cnf
openssl ca -batch -keyfile server_radius.key -cert server_radius.pem -in motorola002.csr -key %PASSWORD_SRV% -out motorola002.crt -extensions xpclient_ext -extfile xpextensions -config server_radius.cnf
openssl pkcs12 -export -in motorola002.crt -inkey motorola002.key -out motorola002.p12 -passin pass:%PASSWORD_CLNT002% -passout pass:%PASSWORD_CLNT002%
openssl pkcs12 -in motorola002.p12 -out motorola002.pem -passin pass:%PASSWORD_CLNT002% -passout pass:%PASSWORD_CLNT002%
TYPE ca_wifi.pem server_radius.pem > ca_and_server_wifi.pem
openssl verify -CAfile ca_and_server_wifi.pem motorola002.pem
TYPE ca_wifi.pem server_radius.pem crl_wifi.pem > ca_and_server_and_crl_wifi.pem
openssl verify -crl_check -CAfile ca_and_server_and_crl_wifi.pem motorola002.pem
:-(
а если сливать так:
TYPE ca_wifi.pem crl_wifi.pem > ca_and_crl_wifi.pem
openssl verify -crl_check -CAfile ca_and_crl_wifi.pem motorola002.pem
Собственно как openssl`у сказать что бы он и chain cerificate проверил и CRL?