Я не системный администратор или сетевой администратор (у меня есть опыт разработки программного обеспечения). Я нахожу некоторые трудности, пытаясь следовать этому руководству, чтобы реализовать Аутентификация клиента SLL в версии Ubuntu 20.04: https://www.makethenmakeinstall.com/2014/05/ssl-client-authentication-step-by-step/
Я знаю, что этот урок довольно старый, но, похоже, он работает нормально, за исключением одной точки.
В основном я выполнил все шаги, указанные в предыдущем уроке. Я суммирую их здесь, чтобы вы также могли дать мне отзыв, если я хорошо понимаю, что я сделал:
Создайте сертификат центра сертификации (CA): в первую очередь я создаю сертификат CA. Если я правильно понимаю, это что-то вроде создания своего личного центра сертификации (типа cacert.org), единственное, что в данном случае нет учреждения, которое проверяет сертификаты, выданные этим центром сертификации. Верно ли это понимание?
openssl req -newkey rsa:4096 -keyform PEM -keyout ca.key -x509 -days 3650 -outform PEM -out ca.cer
В основном эта команда запросит у меня Парольная фраза PEM который я буду использовать для взаимодействия с моим собственным ЦС и некоторыми деталями. Я ставлю такие параметры:
Вас попросят ввести информацию, которая будет включена
в ваш запрос сертификата.
То, что вы собираетесь ввести, называется отличительным именем или DN.
Полей довольно много, но вы можете оставить некоторые пустыми
Для некоторых полей будет значение по умолчанию,
Если вы введете «.», поле останется пустым.
-----
Название страны (двухбуквенный код) [AU]:IT
Название штата или провинции (полное название) [Some-State]:.
Название местности (например, город) []:.
Название организации (например, компания) [Internet Widgits Pty Ltd]: Notariato
Название организационной единицы (например, секция) []:.
Общее имя (например, полное доменное имя сервера или ВАШЕ имя) []:.*
Адрес электронной почты []: [email protected]
ПРИМЕЧАНИЕ: в предыдущем ответе я поставил подстановочный знак (*) для общего имени, чтобы «игнорировать», где будут использоваться сертификаты. Может ли это работать?
Итак, эта команда генерирует ca.cer файл, который я буду использовать для создания своих серверов и клиентского сертификата.
Я сгенерировать SSL-ключ и сертификат моего сервера Apache: это еще не сертификат клиента (сертификат, используемый клиентом, чтобы сказать серверу: «Я сертифицированный клиент !!!»), это сертификат сервера, который говорит клиенту: «Я правильный сервер , а не человек посередине». Это правильно?
Чтобы создать этот серерный сертификат, сначала я генерирую сервер закрытый ключ:
openssl genrsa -out server.key 4096
Затем я использовал этот закрытый ключ сервера, чтобы сгенерировать запрос на создание сертификата.
openssl req -new -key server.key -out server.req -sha256
Также здесь он задает мне некоторые параметры:
Вас попросят ввести информацию, которая будет включена
в ваш запрос сертификата.
То, что вы собираетесь ввести, называется отличительным именем или DN.
Полей довольно много, но вы можете оставить некоторые пустыми
Для некоторых полей будет значение по умолчанию,
Если вы введете «.», поле останется пустым.
-----
Название страны (двухбуквенный код) [AU]:IT
Название штата или провинции (полное название) [Some-State]:.
Название местности (например, город) []:.
Название организации (например, компания) [Internet Widgits Pty Ltd]: Notariato
Название организационной единицы (например, секция) []:.
Общее имя (например, полное доменное имя сервера или ВАШЕ имя) []:*
Адрес электронной почты []: [email protected]
ПРИМЕЧАНИЕ: также здесь я поставил подстановочный знак (*) для общего имени, чтобы «игнорировать», где будут использоваться сертификаты. Может ли это работать?
Затем я использовал запрос на создание сертификата и сертификат CA для создания сертификата сервера:
openssl x509 -req -in server.req -CA ca.cer -CAkey ca.key -set_serial 100 -extensions server -days 1460 -outform PEM -out server.cer -sha256
Затем я пытаюсь установить сертификат в свой Apache:
Скопируйте сертификат CA на постоянное место. Нам нужно указать наш сертификат ЦС в Apache, так как это самогенерируемый ЦС, а не тот, который повсеместно включен в операционные системы:
cp ca.cer /etc/ssl/certs/
Скопируйте сертификат сервера и закрытый ключ на постоянное место:
cp server.cer /etc/ssl/certs/server.crt
cp server.key /etc/ssl/private/server.key
Активируйте модуль SSL в Apache:
a2enmod ssl
Активируйте сайт SSL в Apache и отключите сайт HTTP:
a2ensite по умолчанию-ssl
a2dissite по умолчанию
И теперь у меня возникает проблема с последней командой после вывода последних двух команд:
andrea@ubuntu:~/cert$ a2ensite default-ssl
Сайт по умолчанию-ssl уже включен
andrea@ubuntu:~/cert$ a2dissite по умолчанию
ОШИБКА: Сайт по умолчанию не существует!
Как вы можете видеть, когда я выступаю a2dissite по умолчанию я получаю это ОШИБКА: Сайт по умолчанию не существует! сообщение об ошибке.
Почему? Что это значит? Что не так? Как я могу попытаться решить эту ошибку?