настройка и управление Apache, PHP, MySQL
#911
Сертификат SSL требуется для протокола HTTPS (шифрованный доступ через браузер). Его можно получить у официальной компании типа VeriSign, но за это придется ежегодно платить некоторую сумму денег. Обойти это можно создав самоподписанный сертификат. Браузер, конечно, предупредит о том, что сертификат не заслуживает доверия, но Вы можете просто добавить его в исключения и больше браузер не будет ругаться.

Создаем каталог для работы
mkdir /volume1/public/openssl
cd /volume1/public/openssl

Входим в него через проводник или в терминале, используя любой редактор, создаем файл openssl.cnf со следующим содержанием (подредактировав его под себя):
 openssl.cnf:
[req]
default_bits = 4096 # Длинна ключа в битах.
default_keyfile = pupkin.ru.key # Имя файла, в который будет записан закрытый ключ.
encrypt_key = no # Нам не нужно шифровать закрытый ключ паролем.
default_md = sha512 # Алгоритм хеша.
x509_extensions = v3_req # Включаем расширение V3.
prompt = no # Не нужно запрашивать данные у пользователя, мы всё пропишем здесь.
distinguished_name = req_distinguished_name # Имя секции с данными (может быть любым).

[req_distinguished_name]
C = RU # Country - Двухбуквенный код страны.
L = Urupinsk # Locality - Город.
CN = pupkin.ru # Common Name - Имя домена.
emailAddress = vasya@pupkin.ru # Адрес электронной почты.
# Можно ещё указать следующие поля:
# ST (State - штат, название провинции и т.п.)
# O (Organization - название организации)
# OU (Organizational Unit - название подразделения)

[v3_req]
# Список альтернативных имён. Можно указать прямо здесь, но это не
# удобно, особенно если их много, так что мы указываем название секции
# с именами.
subjectAltName = @alt_names

[alt_names]
# Имена. Можно указать хоть сколько, главное чтобы цифры после точки были разными.
DNS.0 = other.pupkin.ru
DNS.1 = *.other.pupkin.ru
DNS.2 = pupkin.localnet

Затем возвращаемся в окно терминала и создаем сертификат:
openssl req -new -x509 -days 3650 -config openssl.cnf -out pupkin.ru.crt

Опции означают следующее:
    req – команда создание запроса на сертификат
    -new – создать новый запрос
    -x509 – создать готовый самоподписанный сертификат, а не только запрос
    -days 3650 – срок действия сертификата, в данном случае 10 лет
    -config openssl.cnf – наш файл с настройками
    -out pupkin.ru.crt – в этот файл будет записан созданный сертификат, без этой опции сертификат будет выведен на стандартный вывод
После выполнения команды в текущей директории будут два новых файла – pupkin.ru.key (закрытый ключ) и pupkin.ru.crt (сертификат). Можно просмотреть сертификат и удостовериться, что все данные корректны:
openssl x509 -in server.crt -noout -text | more


Далее загружаем его на сервер (при желании включив переход на шифрованный обмен по-умолчанию):
ssl.jpg


Теперь открывая http://diskstation:5001 добавляем сертификат в исключения, предварительно проверив, что это именно он.
#1165
Спасибо за инструкцию. Все выполнил, но результата не достиг. При создании программа ругается, но файлы сертификата и ключа, все таки создает...
 
DS> openssl req -new -x509 -days 3650 -config /volume1/public/openssl/openssl.cnf -out apsds.dyndns.org.crt
WARNING: can't open config file: /usr/syno/ssl/openssl.cnf
Generating a 4096 bit RSA private key
.........................................................++
...........................................................++
writing new private key to 'apsds.dyndns.org.key'
-----
DS>

А вот при установке сертификата через пункт ИмпортироватьСертификат, панель ВебСлужбы, как и панель "Настройки" - совсем не ругается и даже что-то вроде бы делает... НО, зато после - когда захожу на DS через https://xxxxx:5001, то опять вижу сертификат умолчания от Synology. DS я только что перепрошил и настроил. Как я понимаю, фирменный сертификат умолчания от Синоложди сейчас должен быть замещен моим самолепным, который и должен красоваться в брайзере при входе на любой сайт. Но этого не случилось. Почему так происходит и как это излечить? Или я что-то неправильно понял?
Спасибо.