Ничего себе, при использовании апача, можно использовать mod_rewrite для принуждения использования SSL, и в httpd.conf также необходимо использовать 'SSLVerifyClient, требуют' и директивы 'SSLVerifyDepth 4' в *:443 виртуальных хостах.
Для переписать правила можно использовать что-то вроде этого:
RewriteCond %{HTTPS} !^on$ [NC]
RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI} [L]
Надеюсь, это поможет.
То, что Вы надеетесь делать, называют двумя путями аутентификацией SSL
То, как реализовать его, собирается варьироваться на основе Вашего веб-сервера.
tinyca2 является хорошим графическим фронтендом для генерации сертификатов. Это упаковывается и для Debian и для дистрибутивов Linux Ubuntu. Вы сможете генерировать ключи и сертификаты для сервера и клиентов. Они могут быть экспортированы во многих форматах. Я рекомендовал бы documentating процедуры установки Вашего сертификата CA, а также клиентского ключа и сертификата. Установка или изменение пароля на клиентском ключе Вашими пользователями должны также быть покрыты.
Я вторая модификация использования - переписываю для принуждения доступа к https://.
Безопасность - это более серьезный вопрос, чем используемые механизмы аутентификации или авторизации.
Большинство специалистов по безопасности обычно используют несколько основных принципов:
Затем примените это к активам, в вашем случае, веб-серверу, действующему система, и, возможно, веб-приложение и базовая база данных - хотя это действительно бизнес!
Что касается вышеупомянутой технологической инфраструктуры, я бы спросил, применили ли вы надлежащее усиление безопасности для каждой, например, DISA STIG, NSA SRG, руководство CIS или поставщик методы безопасности. После этого я изучал код веб-приложений и другие вещи.
Переходя к вашему конкретному вопросу о сертификатах - что такое цифровой сертификат? Это открытый ключ, встроенный в цифровой сертификат с некоторыми полями, обычно x509v3. Цифровой сертификат фактически является шифровальщиком, который использует дешифратор (закрытый ключ) для аутентификации, подписи или выполнения какого-либо другого типа транзакции.
Сертификаты, как правило, не имеют конфиденциальности, закрытые ключи конфиденциальны и требуют защиты. Однако использование закрытых ключей в операционной системе может означать, что они раскрыты и скомпрометированы. Одна вредоносная программа может быть всем, что нужно для проникновения. Следовательно, в средах с более высоким уровнем безопасности, таких как компании и правительства, обычно используется аппаратное устройство для хранения закрытых ключей и обеспечения более безопасного процесса аутентификации.
Если вы не делаете этого для более безопасная среда,