В настоящее время у меня есть серверный SSL, поэтому клиенты имеют безопасное соединение с моим веб-сервером.
Я хочу реализовать клиентские SSL-сертификаты ДОПОЛНИТЕЛЬНО к обычному логину и паролю, но мне сложно понять, что именно должно произойти.
В общем да.
Вы можете использовать один сертификат для всех (и определить, кто фактический пользователь на основе имени пользователя / пароля), но затем, если этот сертификат будет скомпрометирован, вам придется выпустить новые сертификаты для все - это неудобно для вас или ваших пользователей.
Определенно один ключ на сертификат.
Все ваши пользовательские сертификаты должны быть общедоступной / частной парой, уникальной для пользователя (или устройства).
Они все должны быть подписанный одним доверенным лицом (сертификат CA вашей компании).
Как хотите (с учетом ограничений различных платформ и программного обеспечения).
Я предлагаю НЕ публиковать их на веб-странице, чтобы кто-либо в мире мог их скопировать, но способ получения сертификатов на устройства - это выбор реализации, который вы должны сделать.
Если вы храните пары сертификатов на сервере, вы должны быть уверены, что сервер безопасен - вы не хотите, чтобы кто-то получил в свои руки все ваши (действительные) сертификаты.
Повторный ввод всех ваших пользователей будет раздражать (и это довольно сложно объяснить).
Обязательно прочтите Вопрос по информационной безопасности, на который давуд указал вам который охватывает некоторые механические аспекты создания сертификатов (и, что не менее важно, CRL).
IT безопасность также есть другие вопросы / ответы об аутентификации сертификата, которые были бы для вас отличным ресурсом в отношении теории и принципов, которые вам необходимо реализовать, чтобы это действительно быть безопасный.