Для того, чтобы комфортно пользоваться веб-интерфейсом Netgear ReadyNAS, не получая сообщения браузера о подозрительном сертификате, нужно установить на файл-сервер доверенный сертификат от надёжного центра сертификации.
Кроме того, подключение к общему ресурсу на ReadyNAS через WebDAV на Windows будет успешным, только если операционная система доверяет сертификату сервера.
Для настройки и установки своего сертификата нужно иметь доступ к ReadyNAS по SSH. Подразумевается, что вы уже установили “Enable Root SSH” из каталога дополнительных модулей (Add-on) для ReadyNAS.
Генерация запроса на выдачу сертификата (CSR)
Чтобы настроить веб-сервер Apache в файл-сервере ReadyNAS на работу с вашим сертификатом, нужно этот сертификат получить в центре сертификации. Соответственно, для этого нужен запрос на выдачу сертификата (CSR, Certificate Signing Request), сформированный в операционной системе ReadyNAS.
Первым делом подключаемся по SSH к ReadyNAS и авторизуемся как root:
ssh IP_адрес_ReadyNAS
Password:
su root
Password:
Затем переходим в домашнюю папку и создаём в ней папку, где впоследствии сохраним частный ключ, запрос на выдачу сертификата и сам сертификат:
cd ~
mkdir crt
cd crt
Далее формируем частный ключ (без шифрования ключа) и запрос в центр сертификации на основе частного ключа. Для этого нужно последовательно отвечать на вопросы программы, вписывая ответы на латинице и переходя к следующему вопросу по нажатию клавиши Enter. Обратите внимание, что, отвечая на вопрос “Common name (eg, YOUR name)” нужно писать не ваше имя, а доменное имя сервера!
openssl req -nodes -newkey rsa:2048 -keyout volvox.key -out volvox.csr
Generating a 2048 bit RSA private key
....................+++
....................+++
writing new private key to 'volvox.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) [AU]: RU
State or Province Name (full name) [Some-State]: Saint-Petersburg
Locality Name (eg, city) []: Saint-Petersburg
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Saint-Petersburg State University
Organizational Unit Name (eg, section) []: PPB
Common Name (eg, YOUR name) []: volvox.pozhvanov.com
Email Address []: [email protected]
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
На последние два вопроса программы можно не отвечать – это не влияет на выдачу сертификата.
Убедимся теперь, что в папке csr появились файлы частного ключа (volvox.key) и запроса на выдачу сертификата (volvox.csr):
ls
volvox.csr volvox.key
На этом этапе у нас уже есть запрос на выдачу сертификата, с которым нужно будет обратиться в центр сертификации. Это текстовый файл, который можно легко вывести на экран, и скопировать текст:
vi volvox.csr
-----BEGIN CERTIFICATE REQUEST-----
MIIDCDCCAfACAQAwgcIxCzAJBgNVBAYTAlJVMRkwFwYDVQQIExBTYWludC1QZXRl
cnNidXJnMRkwFwYDVQQHExBTYWludC1QZXRlcnNidXJnMSowKAYDVQQKEyFTYWlu
dC1QZXRlcnNidXJnIFN0YXRlIFVuaXZlcnNpdHkxDDAKBgNVBAsTA1BQQjEdMBsG
A1UEAxMUdm9sdm94LnBvemh2YW5vdi5jb20xJDAiBgkqhkiG9w0BCQEWFWdyZWdv
cnlAcG96aHZhbm92LmNvbTCCASIwSTPQKoZIhvcNAQEBBQADggEPADCCAQoCggEB
ALom4SLUtBrqkQJFGHPp3srshLsAKMTj+M0T/inT34/ItQ24sxeCNPQYCCn5P8hK
FJfk+/28vcLJllYrKAsFu32F/zpxHEGXO/+9MbasPjjy93fFZ5qtdi2byQlsy1FZ
Wf8vJoH6ytRs8l545w56mLGU49XudYnqY/85DXBFQhlope/UbOVqWYgtP/vld0BK
bBhlKmTwx0o6q9SlZOgixFiNq7/3pnHLo94Cw6XuaQF7iVqVIxVnKwigdEsedE1T
DyfCL47SdP8Tm2zkCNWrsmF6xAFn4d8L+1D3rOUK+gPzb842kY9dDL4E2Ql3uZ8q
eHD+DMD8Q5+EXn7bgORI4o8CAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQAhonCN
H2YGzR0zzskfsxg6XAtD9QLAgUILkRtLluzkRegNJ2YW5dfHKrChmbDerCZqOfwd
CzrLTBNXka6vtxkNeC/vhKh1w1N45un8OFZXtaj+Gq91Q8jpSrKe42S0B4LQd0pS
aJL392yHHso5CFIyaDu6OpGpkvi+tG2b7SsI7CrxGNra7Bl2obQz4mfpvxgoQwb8
HY8WxZjzGiT0oe1RWjgbK9h9vGRAw3kOBul4G0lTJosg2+jeyr/azDNt+M0lo6KZ
ubZ+BroGzY3o/xazG1/E23HK3JZxVbcPWkMxaPr6BLotX9UxxM37vx/ivzWs2q1/
d8hIoO6iC3qbnkRi
-----END CERTIFICATE REQUEST-----
~
~
~
:q
Получение бесплатного сертификата SSL в центре сертификации
Имея CSR, можно податься в какой-нибудь центр сертификации и заказать цифровой сертификат SSL. Я использую бесплатные тестовые, но совершенно полноценные сертификаты, выдаваемые SSL.com на срок 90 дней.
Нажав кнопку “GET” на сайте SSL.com, переходим ко вводу данных о нашем сервере.
Учитывая, что у нас уже есть CSR, выбираем опцию “I want to submit my CSR now”:
На следующем этапе необходимо принять лицензионное соглашение, залогиниться или создать учётную запись:
Сервер автоматически распознаёт доменное имя вашего ReadyNAS, указанное в запросе на выдачу сертификата. Далее нужно ввести информацию об организации, запрашивающей сертификат, и ваши контактные данные:
Теперь сервис попросит вас указать способ валидации вашего домена. Есть два варианта: письмом по электронной почте на один из предлагаемых адресов, либо с помощью проверки доступа к тестовой странице, которую вам нужно разместить на сервере. Я всегда выбираю первый вариант, потому что на ReadyNAS неудобно настраивать доступ к корневому каталогу веб-сервера.
Вскоре на указанный адрес придёт письмо с кодом и ссылкой, перейдя по которой, вы откроете страницу для валидации домена:
Через несколько часов после успешной валидации домена SSL.com выпустит сертификат и пришлёт его на вашу электронную почту. Сертификат будет вложен в письмо и продублирован в тексте, откуда его легко скопировать и вставить в консольный vi.
Установка сертификата SSL в Netgear ReadyNAS
Получив цифровой сертификат из центра сертификации, установим его в ReadyNAS.
Для этого вернёмся к сессии SSH с файл-сервером и создадим файл сертификата:
vi volvox.crt
i
Вставим скопированный текст с помощью клавиатурного сокращения:
Ctrl+V
В файле окажется содержимое сертификата:
-----BEGIN CERTIFICATE-----
MIIFDjCCA/agAwIBAgIRANUOXw/WRseHTuyjouGnXZkwDQYJKoZIhvcNAQEFBQAw
PTELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB1NTTC5jb20xHDAaBgNVBAMTE1NTTC5j
b20gRnJlZSBTU0wgQ0EwHhcNMTMwMTIyMDAwMDAwWhcNMTMwNDIyMjM1OTU5WjCB
ijEhMB8GA1UECxMYRG9tYWluIENvbnRyb2wgVmFsaWRhdGVkMTMwMQYDVQQLEypI
b3N0ZWQgYnkgU2VjdXJlIFNvY2tldHMgTGFib3JhdG9yaWVzLCBMTEMxETAPBgNV
BAsTCEZyZWUgU1NMMR0wGwYDVQQDExR2b2x2b3gucG96aHZhbm92LmNvbTCCASIw
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALom4SLUtBrqkQJFGHPp3srshLsA
KMTj+M0T/inT34/ItQ24sxeCNPQYCCn5P8hKFJfk+/28vcLJllYrKAsFu32F/zpx
HEGXO/+9MbasPjjy93fFZ5qtdi2byQlsy1FZWf8vJoH6ytRs8l545w56mLGU49Xu
dYnqY/85DXBFQhlope/UbOVqWYgtP/vld0BKbBhlKmTwx0o6q9SlZOgixFiNq7/3
pnHLo94Cw6XuaQF7iVqVIxVnKwigdEsedE1TDyfCL47SdP8Tm2zkCNWrsmF6xAFn
4d8L+1D3rOUK+gPzb842kY9dDL4E2Ql3uZ8qeHD+DMD8Q5+EXn7bgORI4o8CAwEA
AaOCAbkwggG1MB8GA1UdIwQYMBaAFE5ZZr/zJQgBsorCsTPhPgFRe4IpMB0GA1Ud
DgQWBBRY1Ubktc7WUgs+dTPB7T3DbdxD6TAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0T
AQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwXQYDVR0gBFYw
VDBIBgorBgEEAYKpMAEBMDowOAYIKwYBBQUHAgEWLGh0dHA6Ly93d3cuc3NsLmNv
bS9yZXBvc2l0b3J5L3NzbF92MV9jcHMucGRmMAgGBmeBDAECATA3BgNVHR8EMDAu
MCygKqAohiZodHRwOi8vY3JsLnNzbC5jb20vU1NMY29tRnJlZVNTTENBLmNybDBj
BggrBgEFBQcBAQRXMFUwMgYIKwYBBQUHMAKGJmh0dHA6Ly9jcnQuc3NsLmNvbS9T
U0xjb21GcmVlU1NMQ0EuY3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5zc2wu
Y29tMDkGA1UdEQQyMDCCFHZvbHZveC5wb3podmFub3YuY29tghh3d3cudm9sdm94
LnBvemh2YW5vdi5jb20wDQYJKoZIhvcNAQEFBQADggEBADanIV6U2TB3tYY4g9tl
tOHOBG5aytYTTr38BzyE4yk9YweqF+iTykXeEhEenNTYIpy60e4C1HojnlC4s69j
Pll4ixlZu9Mi//QXZN5wEizqePlWqhotLkVTSayf698aUJWi78vxRsQa691t+NNB
uGdmePxBI8R7KDTYXeI/oVtfijBDxDRoujnvaM8IMcIPzOxg1W7j8n0YvDVXfgc+
iKejgiLNALwj3rAPMjiHyuLYy8M4x21hW4g5N0+ZLij0br3ugFxrkyAQ9e4Ovsiy
DM7RKUsGUgMhuet2vd9x1/rnAMnrLC26vi0Oa362CPl5lhxGftHa/dqgt8xaDZIZ
CEE=
-----END CERTIFICATE-----
Теперь выходим из режима правки текста, нажав клавишу Esc, и сохраняем файл:
:wq
В ReadyNAS сервер Apache использует для mod_ssl „склеенный“ файл, в котором находятся расшифрованный частный ключ (не выдаётся клиенту) и сертификат сервера, выданный центром сертификации на предыдущем этапе.
Поэтому нам осталось соединить в один файл частный ключ и сертификат, и полученный файл сохранить в папку с настройками веб-сервера.
Объединяем частный ключ и сертификат:
cat volvox.key volvox.crt > apache.pem
Перемещаем файл с ключом и сертификатом в папку с настройками сервера:
mv apache.pem /etc/frontview/apache/apache.pem
Перезапускаем сервер Apache:
apache-ssl -f /etc/frontview/apache/httpd.conf -k restart
С этого момента файл-сервер Netgear ReadyNAS использует доверенный сертификат, что позволяет комфортно работать с веб-интерфейсом и безопасно подключаться по протоколу WebDAV.
Спасибо за инструкцию, всё очень просто и подробно описано. Но есть одно «НО» — у меня RN31400, OS6 и там по адресу /etc/frontview/apache/httpd.conf — файла «httpd.conf» нет. Я заменил файл apache.pem, перезагрузил устройство, но ничего не произошло…
Ссылка на скриншот: https://www.dropbox.com/s/h9m96fvmx86iupb/pic.PNG
Очень обидно встать колом буквально в шаге от «счастья» =/
Значит, на ReadyNAS OS 6 конфиг апача хранится в каком-то другом файле.
Судя по скриншоту, имеет смысл посмотреть, что написано в apps-https.conf и ssleay*
Всё, разобрался.
Прилагаю уточнение к инструкции на случай, если кому-то всё же понадобится. После того как создали и положили в «/etc/frontview/apache/» файл «apache.pem» открываем в той же папке файл «fv-admin.conf», находим строку «SSLEngine» — чуть ниже будет указана ссылка на «/etc/frontview/apache/apache2.pem», мы же просто меняем её на «/etc/frontview/apache/apache.pem» и перезагружаем устройство. Можно было бы просто заменить конечно файл apache2.pem, но он в настоящий момент используется и просто так заменить его нельзя.
Спасибо за информацию!
Очень полезная статья! Спасибо! Но появился вопрос. Пытался проделать тоже самое с Ready NAS Duo, но как изменить доменное имя устройства? У меня устройство имеет внутренний IP адрес и не входит в домен, соответственно бесплатный сертификат для внутреннего IP бесплатно сгенерить не удается. А при попытке сгенерить сертификат на домен вида xxx.asuscomm.com приводит к тому что при перезапуске apache вылетает ошибка с требованием использовать в качестве имени сервера внутренний ip устройства. Как быть в данной ситуации?
Не пользовался ReadyNAS Duo, поэтому не знаком с его особенностями (хотя там скорее всего тот же Апач, но под архитектуру ARM).
Наверное, есть два пути: 1) создать запрос сертификата с указанием частного IP (сертификаты выдают как для доменных имён, так и для IP);
2) прописать в hosts свой домен и статический IP, например:
192.168.1.35 my.nas
и получить сертификат для домена.
Имею ReadyNAS NVX. В DUO скорее всего аналогично. Чтобы Apache запустился, надо в файле /etc/frontview/apache/httpd.conf добавить строку (вставил самой первой):
ServerName <имя домена>
Вместо подставить соответствующее имя (например, localhost или http://www.mydomen.ru, в зависимости от того, на какое имя домена получен сертификат).
Для доступа в ReadyNAS по SSH использовал WinSCP (в ней есть и консоль для команд). Для редактирования на хосте (под Windows) использовал Notepad++ (в режиме Unix-файлов). Редактором делал apache.pem и правил httpd.conf. Так что из команд использовал только последнюю для перезапуска Apache (хотя можно было и без неё — просто рестартовать ReadyNAS).
Сори, после слов «ServerName» и «Вместо» я писал «имя домена» в угловых скобках, что привело к неожиданному исчезновению текста. Вледелец может поправить. Вставить, например, [имя домена].
Спасибо за Ваш комментарий!
по второму замечанию:
Это потому что угловая скобка интерпретируется как тег. Надо писать < и >, что даст в итоге < и >.
Поправил.