Полагаю, вы имеете в виду «Я сохранил клиентский SSL-сертификат в базе данных в виде файла, его закрытый ключ и его пароль приватного ключа». Возможно, сертификат X.509 и его закрытый ключ находятся в одном контейнере, предположительно в формате PKCS # 12.
(Или вы действительно хотите хранить только сертификат? Хранить только сертификат - это хорошо, но зачем вам хранить пароль закрытого ключа?)
Это не обязательно неправильно, но вы должны убедиться, что доступ к этой базе данных надежно защищен.
В общем, закрытый ключ действительно таков: личный . Некоторые сертификационные органы даже предписывают в своих политиках, чтобы никто, кроме конечного пользователя, не знал закрытый ключ (по крайней мере, с разумной защитой, например, в браузере или в файле PKCS # 12, для которого только они знают пароль).
Это имеет смысл при использовании открытых и закрытых ключей.
Я думаю, вам нужно внимательно посмотреть на все углы вашего дизайна. Непонятно, почему вы хотите хранить закрытые ключи в базе данных для извлечения пользователями. Может иметь смысл хранить закрытые ключи в центральном месте, но это также может лишить смысла использование сертификата клиента для аутентификации (это действительно зависит от полной картины и степени безопасности, которую вы действительно хотите).
Хранение личных ключей всех ваших пользователей в центральном месте, вероятно, не так безопасно, как использование каждым пользователем своего собственного хранилища, но это может быть приемлемо. В конечном счете, это зависит от угроз, с которыми вы можете столкнуться.