Валидные сертификаты и DNS для сервисов в локальных сетях без удостоверяющего центра

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Валидные сертификаты и DNS для сервисов в локальных сетях без удостоверяющего центра


В этом посте будет рассмотрена установка и использование сервиса http://local-ip.co/ с валидными сертификатами и с DNS как xip.io, nip.io.


Вы можете использовать сертификат для домена *.my.local-ip.co


  • сертификат http://local-ip.co/cert/server.pem
  • промежуточный сертификат http://local-ip.co/cert/chain.pem
  • ключ сертификата http://local-ip.co/cert/server.key

Обращаться нужно будет примерно так:


  • https://127-0-0-1.my.local-ip.co
  • https://192-168-0-1.my.local-ip.co
  • https://172-16-0-1.my.local-ip.co
  • https://10-0-0-1.my.local-ip.co

Ниже будет пример с установкой harbor c валидным сертификатом.


Требования:


Устанавливаем docker и docker-compose


Скачиваем harbor


wget https://github.com/goharbor/harbor/releases/download/v2.2.1/harbor-online-installer-v2.2.1.tgz

Распаковываем harbor


tar xvf harbor-online-installer-v2.2.1.tgz

Подготавливаем сертификаты от проекта http://local-ip.co/


mkdir -p /data/cert/
cd /data/cert/
wget http://local-ip.co/cert/server.pem
wget http://local-ip.co/cert/chain.pem
wget http://local-ip.co/cert/server.key

Создаем цепочку сертификатов


cat server.pem chain.pem > bundled_cert_file.pem

Переименовываем сертификаты под доменное имя, которое вам нужно будет.


cp bundled_cert_file.pem 192-168-22-7.my.local-ip.co.crt
cp server.key 192-168-22-7.my.local-ip.co.key

Копируем шаблон конфига в конфиг


cp harbor.yml.tmpl harbor.yml

Конфигурируем hostname в harbor.yml


hostname: 192-168-22-7.my.local-ip.co

Указываем сертификат и ключ в harbor.yml


  certificate: /data/cert/192-168-22-7.my.local-ip.co.crt
  private_key: /data/cert/192-168-22-7.my.local-ip.co.key

Запускаем скачивание образов


./prepare

Запускаем harbor через docker-compose


docker-compose up -d

Либо запускаем установку


./install.sh

Установка harbor через Ansible


Для установки harbor через ansible используем роль https://galaxy.ansible.com/manueliglesiasgarcia/ansible_vmware_harbor


Скачиваем роль


ansible-galaxy install manueliglesiasgarcia.ansible_vmware_harbor

Ниже playbook для установки harbor через ansible


---
- name: Install harbor
  become: yes
  hosts: harbor
  pre_tasks:
    - name: update apt
      apt: update_cache=yes cache_valid_time=3600
      when: ansible_pkg_mgr is defined and ansible_pkg_mgr == "apt"
      ignore_errors: true

    - name: Creates directory {{ playbook_dir }}/certs
      file:
        path: "{{ playbook_dir }}/certs"
        state: directory
      delegate_to: localhost
      become: no

    - name: Download http://local-ip.co/cert/server.pem
      get_url:
        url: http://local-ip.co/cert/server.pem
        dest: "{{ playbook_dir }}/certs/server.pem"
      delegate_to: localhost
      become: no

    - name: Download http://local-ip.co/cert/chain.pem
      get_url:
        url: http://local-ip.co/cert/chain.pem
        dest: "{{ playbook_dir }}/certs/chain.pem"
      delegate_to: localhost
      become: no

    - name: Download http://local-ip.co/cert/server.key
      get_url:
        url: http://local-ip.co/cert/server.key
        dest: "{{ playbook_dir }}/certs/server.key"
      delegate_to: localhost
      become: no

    - name: merge certificate
      shell: cat server.pem chain.pem > bundled_cert_file.pem
      args:
        chdir: "{{ playbook_dir }}/certs"
      delegate_to: localhost
      become: no

  vars:
    # Add a registry
    harbor_registry:
      - registry_name: "Test Harbor"
        registry_url: https://192-168-22-8.my.local-ip.co/
    # Schedule an automatic scan of the docker images every hour
    harbor_schedule_scan:
      - cron: "0 0 * * * *"
    # Schedule an automatic garbage collection every hour
    harbor_schedule_gc:
      - cron: "0 0 * * * *"
    #Storge harbor installation file
    harbor_install_tmp: /root/harbor
    harbor_extras:
      -  clair
    #Folder installed harbor
    harbor_install_dir: /opt/harbor
    # The cert and key path is located in your ansible master, not the target hosts
    # The default path for certs is controlled by this role See roles/default/main.yml
    harbor_ssl_cert: "{{playbook_dir}}/certs/bundled_cert_file.pem"
    harbor_ssl_cert_key: "{{playbook_dir}}/certs/server.key"
    #ends up in harbor.yml
    harbor_hostname: 192-168-22-8.my.local-ip.co
    harbor_db_password: admin
  roles:
    - manueliglesiasgarcia.ansible_vmware_harbor

Запускаем playbook


ansible-playbook -i inventory.ini install-harbor.yml -e "harbor_admin_password=password_for_harbor"

Где password_for_harbor пароль для harbor.


Скриншот:


Источник: https://habr.com/ru/post/549924/


Интересные статьи

Интересные статьи

Анализируем ситуацию в России и мире, приводим примеры из сферы ИТ и не только, плюс — комментарии эксперта по кадровому делу и юриста системы «Актион Право». ...
Врага надо знать в лицо. А в digital-маркетинге нужно знать, какую тактику он применяет и какие результаты получает. Анализ конкурентов полезен на любом этапе развития би...
Grooveshark уже пять лет как закрыт. За это время появились десятки проектов поменьше с той же идеей — но на базе децентрализованных сетей. Проблема Grooveshark была в его централизац...
Вам приходилось сталкиваться с ситуацией, когда сайт или портал Битрикс24 недоступен, потому что на диске неожиданно закончилось место? Да, последний бэкап съел все место на диске в самый неподходящий...
Cтатья будет полезна тем, кто думает какую выбрать CMS для интернет-магазина, сравнивает различные движки, ищет в них плюсы и минусы важные для себя.