Настройка сервера Настройка клиента
Сначала потребуется установить пакеты, необходимые для работы веб-сервера. Для этого перейдите в сеанс пользователя root:
su -
и выполните команду:
dnf install @web-server
Далее необходимо создать локальный репозиторий. Для этого воспользуйтесь нашей статьей «Создание локального репозитория».
Затем создайте самоподписанный сертификат:
openssl req -x509 -nodes -newkey rsa:2048 -keyout /var/lib/dnf/server.key -out /var/lib/dnf/server.cert
где:
-x509 — определяет необходимость создания самоподписанного сертификата, а не запроса на подпись;
-x509
-nodes — пропустить опцию защиты сертификата с помощью пароля;
-nodes
-newkey rsa:2048 — указывает необходимость генерации нового сертификата и нового ключа RSA длиной 2048 бит;
-newkey rsa:2048
-keyout — каталог хранения и имя закрытого ключа;
-keyout
-out — каталог хранения и имя создаваемого сертификата.
-out
Потребуется указать некоторые данные для запроса сертификата - страну, область, город или другой населенный пункт, наименование организации, наименование подразделения организации и сервер. Важным параметром здесь является Common Name (CN), где необходимо указать доменное имя сервера или его IP-адрес.
Common Name (CN)
Generating a RSA private key .......................................................+++++ ...........................................................................................................................................................................+++++ writing new private key to '/var/lib/dnf/server2.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:ru State or Province Name (full name) []:msk Locality Name (eg, city) [Default City]:msk Organization Name (eg, company) [Default Company Ltd]:rs Organizational Unit Name (eg, section) []:rs Common Name (eg, your name or your server's hostname) []:server-repo Email Address []:admin@rs.ru
Далее в файле /etc/httpd/conf.d/ssl.conf необходимо указать путь к созданным файлам сертификата и ключа:
nano /etc/httpd/conf.d/ssl.conf
# Point SSLCertificateFile at a PEM encoded certificate. If # the certificate is encrypted, then you will be prompted for a # pass phrase. Note that restarting httpd will prompt again. Keep # in mind that if you have both an RSA and a DSA certificate you # can configure both in parallel (to also allow the use of DSA # ciphers, etc.) # Some ECC cipher suites (http://www.ietf.org/rfc/rfc4492.txt) # require an ECC certificate which can also be configured in # parallel. SSLCertificateFile /var/lib/dnf/server.cert # Server Private Key: # If the key is not combined with the certificate, use this # directive to point at the key file. Keep in mind that if # you've both a RSA and a DSA private key you can configure # both in parallel (to also allow the use of DSA ciphers, etc.) # ECC keys, when in use, can also be configured in parallel SSLCertificateKeyFile /var/lib/dnf/server.key
Если SELinux на сервере включен, необходимо изменить метку файлов сертификата и ключа, чтобы httpd мог получить к ним доступ:
semanage fcontext -a -s system_u -t cert_t /var/lib/dnf/server.cert semanage fcontext -a -s system_u -t cert_t /var/lib/dnf/server.key restorecon -vF /var/lib/dnf/server.key /var/lib/dnf/server.cert
После этого потребуется перезапустить службу httpd командой:
systemctl restart httpd
С сервера, на котором настроен локальный репозиторий, необходимо скопировать самоподписанный сертификат в хранилище доверенных корневых сертификатов клиента:
cp server.cert /etc/pki/ca-trust/source/anchors/ update-ca-trust extract
Далее в директории /etc/yum.repos.d/* следует создать файл репозитория со следующим содержимым, например:
[repo] baseurl=https://<server_hostname>/<repo-id> enabled=1 #sslverify=false
По умолчанию параметр sslverify=true, однако в случае если сертификат не был добавлен в доверенные корневые сертификаты клиента, необходимо использовать значение false (раскомментировать строку #sslverify=false) для пропуска его проверки.
sslverify=true
false
#sslverify=false
Дата последнего изменения: 09.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.
Нажимая «Отправить запрос», вы соглашаетесь с условиями обработки персональных данных.
Вы будете получать только актуальную информацию по обновлению безопасности
Подписываясь на уведомления, вы соглашаетесь с условиями обработки персональных данных.
На ваш почтовый адрес отправлено письмо с подтверждением подписки.