Для внутреннего веб-программного обеспечения, которое должно быть доступно отовсюду, я создал клиентские сертификаты, которые устанавливаются в браузерах авторизованных потребителей.
Теперь, когда закончился 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
Можно ли продлить срок действия сертификата клиента?
Нет, это невозможно.
Сертификат клиента имеет определенный срок действия, который нельзя изменить. Единственная возможность - создать новый сертификат с новой датой действия.
Нужно ли мне переустанавливать сертификат на всех клиентах или есть другой способ
У вас нет доступа к сертификатам в браузере вашего клиента с вашего сервера. Что вы можете сделать, так это разработать веб-страницу (аутентифицированную с помощью клиентских сертификатов), которая позволяет пользователям создавать новый сертификат и импортировать его в свой браузер.
На стороне сервера этой веб-страницы вы можете создать новый сертификат либо с тем же запросом сертификата, который вы использовали в прошлом году (немного менее безопасным), либо создать новый запрос сертификата с информацией, которая у вас есть о пользователе в вашей базе данных. Вы можете сделать это с помощью openssl так же, как описали в своем сообщении.
Как обновить / восстановить клиентские сертификаты с помощью openssl в Linux
Как я уже писал в предыдущем вопросе, вам нужно создать новый сертификат. Вы можете сделать это, используя запрос сертификата, который вы использовали в прошлом году, или создать новый (более безопасный, но и более сложный). Затем вам нужно подписать этот запрос ключом сервера и экспортировать его в pkcs12.
Я бы придерживался вашего текущего срока действия (1 год), даже если продлить сертификаты будет сложно. Поскольку чем дольше сертификаты действительны, тем больше изменение: какой-то авторизованный пользователь становится неавторизованным, но все еще имеет действующий сертификат.