Поиск CA-сертификата на Synology NAS для использования с curl –cacert

Вопрос или проблема

Мой Synology использует самоподписанный сертификат, поэтому мне нужно включить его с curl --cacert /path/to/cert.pem, чтобы безопасно подключиться с терминала к NAS используя https. Как я могу найти этот сертификат на моем Synology?

Файл cert.pem, экспортированный через веб-интерфейс Synology ‘Панель управления’ > Безопасность > Сертификат > действие > ‘экспортировать сертификат’, (вероятно) не является правильным сертификатом.

$ curl --cacert /path/to/cert.pem 192.168.1.10
* ошибка при установке файла сертификата: cert.pem

Использование с ssh:

$ sudo find . -name cacert.pem

Synology находит только пути docker, такие как ./volume1/@docker/btrfs/subvolumes/…/cecert.pem

#!/bin/bash

# Функция для отображения информации о использовании
usage() {
    echo "Использование: $0 <nas_ip>"
    echo "Пример: $0 192.168.1.10"
    exit 1
}

# Проверить, был ли предоставлен IP-адрес
if [ -z "$1" ]; then
    usage
fi

NAS_IP=$1

# SSH на NAS
echo "Попытка SSH в Synology NAS по адресу ${NAS_IP}..."
ssh admin@${NAS_IP} << EOF
    echo "Поиск файлов CA-сертификатов..."
    
    # Поиск всех .pem файлов
    sudo find / -name "*.pem" -type f | grep -v "@docker" > /tmp/cert_files.txt
    
    # Отображение списка найденных сертификатов
    echo "Найдены потенциальные файлы сертификатов:"
    cat /tmp/cert_files.txt
    
    # Проверка каждого файла на наличие CA-свойств
    echo "Проверка каждого сертификата на CA-свойства..."
    while IFS= read -r line; do
        if openssl x509 -in "$line" -text -noout 2>/dev/null | grep -q "CA:TRUE"; then
            echo "Найден CA-сертификат по адресу: $line"
            # Копирование этого сертификата во временное расположение для передачи
            sudo cp "$line" /tmp/ca-cert.pem
            break
        fi
    done < /tmp/cert_files.txt
    
    # Если CA-сертификат найден, подготовка для загрузки
    if [ -f "/tmp/ca-cert.pem" ]; then
        echo "Копирование CA-сертификата на локальную машину..."
        scp admin@${NAS_IP}:/tmp/ca-cert.pem ./ca-cert.pem
    else
        echo "CA-сертификат не найден или недоступен."
    fi

    # Очистка
    sudo rm -f /tmp/cert_files.txt /tmp/ca-cert.pem
EOF

# Проверка, был ли сертификат успешно скопирован
if [ -f "./ca-cert.pem" ]; then
    echo "CA-сертификат скопирован локально. Используйте с curl следующим образом:"
    echo "curl --cacert ./ca-cert.pem https://${NAS_IP}"
else
    echo "Не удалось получить CA-сертификат. Пожалуйста, проверьте, есть ли у вас доступ к нужным файлам или если есть проблема с разрешениями SSH."
fi

.

Ответ или решение

Владельцы Synology NAS часто сталкиваются с задачей интеграции самоподписанных сертификатов для использования с инструментами, такими как curl. В данной ситуации, чтобы корректно подключаться к NAS через протокол HTTPS, важно правильно экспортировать и использовать самоподписанный сертификат. Давайте разберемся, как его найти и использовать с командой curl --cacert.

Шаги для нахождения и использования CA сертификата Synology NAS

  1. Подключитесь к Synology NAS через SSH:
    Для начала вам необходимо подключиться к вашему Synology NAS с использованием SSH. Используйте терминал и команду SSH:

    ssh admin@<IP_ADDRESS_NAS>

    Замените <IP_ADDRESS_NAS> на IP-адрес вашего устройства.

  2. Поиск файла сертификата:
    Обычно Synology хранит сертификаты в определённых системных директориях. Выполните поиск сертификатов с помощью следующей команды, исключая нежелательные каталоги, такие как Docker:

    sudo find / -name "*.pem" -type f | grep -v "@docker" > /tmp/cert_files.txt

    Это создаст список всех файлов с расширением .pem на устройстве, исключая ненужные пути.

  3. Проверка сертификатов на CA-свойства:
    Из всех найденных .pem файлов, вам нужно определить тот, который является CA-сертификатом. Выполните:

    while IFS= read -r line; do
       if openssl x509 -in "$line" -text -noout 2>/dev/null | grep -q "CA:TRUE"; then
           echo "Найден CA сертификат в: $line"
           sudo cp "$line" /tmp/ca-cert.pem
           break
       fi
    done < /tmp/cert_files.txt

    Эта команда проверит каждый сертификат на наличие атрибута CA:TRUE.

  4. Копирование CA-сертификата на локальную машину:
    Если CA-сертификат найден и скопирован во временную папку /tmp/ca-cert.pem, то его можно перенести на ваш локальный компьютер:

    scp admin@<IP_ADDRESS_NAS>:/tmp/ca-cert.pem ./ca-cert.pem

    Убедитесь, что вы используете верный IP-адрес вашего NAS.

  5. Использование сертификата с cURL:
    Теперь, когда сертификат сохранен на локальном компьютере, вы можете использовать его следующим образом:

    curl --cacert ./ca-cert.pem https://<IP_ADDRESS_NAS>

Обращайте внимание:

  • SSH-доступ: Убедитесь, что у вас есть права доступа и разрешение на выполнение команд через SSH.
  • Права доступа: Некоторые файлы могут требовать увеличенных прав доступа. Применяйте sudo при необходимости.
  • Актуализация сертификатов: Помните, что самоподписанные сертификаты могут иметь ограниченный срок действия, так что обновляйте их своевременно.

Эти шаги помогут вам правильно экспортировать и использовать самоподписанный сертификат с вашего Synology NAS, обеспечивая безопасное подключение по HTTPS с использованием curl.

Оцените материал
Добавить комментарий

Капча загружается...