Comments 11
Конфигурация для Apache2 и Nginx проста, нам надо только добавить пару строк и прописать путь к сертификату.
Для Апача указанных настроек может быть недостаточно
Возможно (но не обязательно) в конфиг /etc/apache2/sites-available/your_site_name.com.conf надо будет добавить еще
SSLEngine On
Кстати, у меня на Apache2 все попытки настроить доступ через самоподписанный SSL заканчивались провалом, браузеры ни в какую не хотели принимать созданный таким образом Р12 при доступе к сайту, авторизованному через созданные crt. Решилось все созданием pem сертификатов
openssl req -x509 -new -nodes -key ca.key -days 7300 -out ca.pem
и указанием в конфиге апача таких вот параметров
SSLCertificateFile /home/webadmin/certs/ca.pem
SSLCertificateKeyFile /home/webadmin/certs/ca.key
SSLCACertificateFile /home/webadmin/certs/ca.pem
Вот так оно взлетело...
Сделайте все как тут и сработает)
Что касается SSLEngine - выше я вставлял это в пример. И этот параметр подразумевается сам собой т.к. все это делается сразу под https. Будет ли авторизация работать по http не знаю, не пробовал и даже не задумывался об этом. Возможно вы правы в том, что надо было явно указать этот параметр и в пункте включения авторизации.
Не, я не спорю, что прикрутить EasyRSA вместо OpenSSL задача любопытная и вполне решаемая. Просто я описал свой опыт работы в данном направлении, что-то у меня с этим не срослось, а вот на OpenSSL сработало. Так что если у кого то будут те же грабли, есть возможность их решить.
Я в свою очередь попробую на досуге ваш вариант, может и получится, вполне вероятно я там где то кривыми руками что-то не то делал.
А что-нибудь готовое с веб интерфейсом для управления клиентскими сертификатами можете посоветовать?
Я не знаю таких. Если только webmin, но может он то, что вам надо или нет - не знаю.
Скажите, что делать? Спасибо../revoke_ssl.sh
...
rm: cannot remove '/root/SubCA/pki/issued/dns_name.crt': No such file or directory
rm: cannot remove '/root/SubCA/pki/private/dns_name.*': No such file or directory
DONE!
Скрипты писались под старую версию Easy-RSA. Сейчас используется обновленная версия, в которой при отзыве Easy-RSA сам удаляет файлы. В скрипте, который уже у вас, можете или проигнорировать (ошибки эти ни на что не влияют) или удалить в скрипте вот это строки:
rm ~/$ca/pki/issued/$name_crt.crt
rm ~/$ca/pki/private/$name_crt.*
C macOS ваш метод сработал. Благодарю. Как раз столкнулись с проблемой, когда пользователи мак оси столкнулись с проблемой, связанной с постоянным вводом пароля, после установки ключа.
День добрый. Что-то не взлетает - где-то туплю. Ставлю на ubuntu 18 все машины
делаю первый этап - все норм. Правда RootCA.crt остается в папке /tmp - его в ручную копирую в /cert.
Делаю второй этап - в скрипте меняю "ca=$REPLY" на "ca="easyrca-subca"", чтобы в ручную не писать каждый раз и закомментировал перед ним выбор CA
с третьего только настройки apache2 - остальное не трогаю. при этом он хочет ключ RootCA.crt, который мы копировали с первой машинки на вторую, но не копировали на Web- скопировал
Генерую ключ пользователя скриптом, перекинул, прописал - нет результата. Скипировал RootCA.crt на клиента, установил в доверенные - результат тот-же - ошибка "ERR_SSL_PROTOCOL_ERROR ". Не могу понять что не так. Делаю в первый раз.
Создавая RootCA его сертификат будет в pki/ca.crt
После создаём SubCA и делаем запрос на подпись и подписываем у RootCA. Оба сертификата возвращаем на SubCA. Оба сертификата помещаем в easyrsa-subca/pki/ . Не забываем про символьную ссылку для сертификата SubCA.
Создаём инфраструктуру и запускаем скрипт. Выпускаем ssl сертификат для веб сервера. И помещаем его на сервер. В качестве ssl.crt указываем сертификат в имени которого есть fullchain.crt. Рестартуем веб сервер. Сертификат RootCA устанавливаем на клиентском компьютере в раздел доверенных корневых сертификатов ( как-то так, на винде он второй в списке под папкой личное). Проверяем сайт.
Возвращаемся на SubCA и запускаем скрипт и выпускаем клиентский сертификат. Сертификат с расширением .p12 отправляем на клиентский компьютер. А сами идём на веб сервер.
В конфиге прописываем авторизацию по ssl и указываем сертификат с RootCA. Он будет служить для проверки подписи.
Ещё раз перезапускаем веб.
Идём на клиентский компьютер и устанавливаем сертификат ( можно выбрать автоматический выбор, он станет в папку личное).
Обновляем страницу. Запрашивает сертификат? Выбираем. Есть доступ.
Вот краткие шаги. Если что-то не сработало, то что-то вы упустили или ошиблись. В вашем комменте например easyrsa-subca, что вы прописали в скрипте, ошибка. Если это так, а сама директория называется, как в Мане у меня. То сертификат и вовсе не должен выпуститься скриптом. Если делали все вручную, то не забывайте про полную цепочку сертификатов - RootCA на клиентском (но это конечно не обязательно), а server.crt и SubCA.crt нужно объединить в один именно в данной последовательности и это обязательно!
Web-сервер с двухуровневой иерархией ЦС. Авторизация по SSL