Обновить SSL-сертификаты клиента
Для внутренне используемого программного обеспечения, которое должно быть доступно везде, я создал клиентские сертификаты, которые устанавливаются в браузерах авторизованных пользователей.
Теперь, когда 2012 год закончился, все они истекли и нуждаются в обновлении. Я выдал сертификаты PKCS #12 (.p12)
Здесь мои вопросы
- Можно ли продлить срок действия сертификата клиента?
Нужно ли переустанавливать сертификат на всех клиентах или есть другой способ (например, централизованно с сервера, возможно какой-то механизм обновления)?
Как мне обновить / восстановить клиентские сертификаты, используя openssl на linux?
Поскольку это может быть интересно, вот как я создал сертификаты браузера
# client private key
openssl genrsa -des3 -out client.key 1024
# generate certificate signing request
openssl req -new -key client.key -out client.csr
# create certificate, sign with server key
openssl x509 -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt
# export into pkcs12
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
1 ответ
Можно ли продлить срок действия сертификата клиента?
Нет, это невозможно.
Сертификат клиента имеет определенную дату действия, которую нельзя изменить. Единственная возможность - создать новый сертификат с новой датой действия.
Нужно ли переустанавливать сертификат на всех клиентах или есть другой способ
У вас нет доступа к сертификатам в браузере вашего клиента с вашего сервера. Что вы можете сделать, так это разработать веб-страницу (аутентифицированную с помощью клиентских сертификатов), которая позволяет пользователям создавать новый сертификат и импортировать его в свой браузер.
На стороне сервера этой веб-страницы вы можете создать новый сертификат либо с тем же запросом сертификата, который вы использовали в прошлом году (чуть менее безопасный), либо создать новый запрос сертификата с информацией, которую вы имеете о пользователе в вашей базе данных. Вы можете сделать это с openssl так же, как вы описали в своем посте.
Как мне обновить / восстановить клиентские сертификаты, используя openssl в Linux?
Как я писал в предыдущем вопросе, вам нужно создать новый сертификат. Вы можете сделать это с помощью запроса на сертификат, который вы использовали в прошлом году, или создать новый (более безопасный, но и более сложный). Затем вам нужно подписать этот запрос ключом сервера и экспортировать его в pkcs12.
Я бы придерживался вашего текущего срока действия (1 год), даже если у вас возникли проблемы с продлением сертификатов. Поскольку чем дольше действительны сертификаты, тем больше изменение, то какой-то авторизованный пользователь становится неавторизованным, но все еще имеет действующий сертификат.