Jump to content

Nginx + SSL от Letsencrypt


Recommended Posts

Для эксперимента пробую поднять на свежекупленном Keenetic Ultra небольшой веб-сервер, поставил Entware, Nginx. Настроил проброс 80 и 443 портов с внешнего интерфейса на 81 и 443 роутера, прописал IP в А-запись DNS (IP статический, белый). Простой http работает прекрасно, страничку тестовую видно. 

Проблема с https, пробую настроить по этой https://github.com/Entware/Entware/wiki/Using-Let's-Encrypt инструкции, споткнулся на запуске dehydrated - выдает ошибки. Подскажите, в чем дело?

 

root@Keenetic_Ultra:/opt/etc/nginx# bash ./dehydrated --domain ХХХХХХ.su --cron
# INFO: Using main config file /opt/etc/nginx/config
2001398464:error:25066067:DSO support routines:dlfcn_load:could not load the shared library:crypto/dso/dso_dlfcn.c:118:filename(libengines.so): libengines.so: cannot open shared object file: No such file or directory
2001398464:error:25070067:DSO support routines:DSO_load:could not load the shared library:crypto/dso/dso_lib.c:162:
2001398464:error:0E07506E:configuration file routines:module_load_dso:error loading dso:crypto/conf/conf_mod.c:224:module=engines, path=engines
2001398464:error:0E076071:configuration file routines:module_run:unknown module name:crypto/conf/conf_mod.c:165:module=engines
2007521984:error:25066067:DSO support routines:dlfcn_load:could not load the shared library:crypto/dso/dso_dlfcn.c:118:filename(libengines.so): libengines.so: cannot open shared object file: No such file or directory
2007521984:error:25070067:DSO support routines:DSO_load:could not load the shared library:crypto/dso/dso_lib.c:162:
2007521984:error:0E07506E:configuration file routines:module_load_dso:error loading dso:crypto/conf/conf_mod.c:224:module=engines, path=engines
2007521984:error:0E076071:configuration file routines:module_run:unknown module name:crypto/conf/conf_mod.c:165:module=engines
2003077824:error:25066067:DSO support routines:dlfcn_load:could not load the shared library:crypto/dso/dso_dlfcn.c:118:filename(libengines.so): libengines.so: cannot open shared object file: No such file or directory
2003077824:error:25070067:DSO support routines:DSO_load:could not load the shared library:crypto/dso/dso_lib.c:162:
2003077824:error:0E07506E:configuration file routines:module_load_dso:error loading dso:crypto/conf/conf_mod.c:224:module=engines, path=engines
2003077824:error:0E076071:configuration file routines:module_run:unknown module name:crypto/conf/conf_mod.c:165:module=engines
2003913408:error:25066067:DSO support routines:dlfcn_load:could not load the shared library:crypto/dso/dso_dlfcn.c:118:filename(libengines.so): libengines.so: cannot open shared object file: No such file or directory
2003913408:error:25070067:DSO support routines:DSO_load:could not load the shared library:crypto/dso/dso_lib.c:162:
2003913408:error:0E07506E:configuration file routines:module_load_dso:error loading dso:crypto/conf/conf_mod.c:224:module=engines, path=engines
2003913408:error:0E076071:configuration file routines:module_run:unknown module name:crypto/conf/conf_mod.c:165:module=engines
Processing ХХХХХХ.su
 + Creating new directory /opt/etc/nginx/certs/ХХХХХХ.su ...
 + Signing domains...
 + Generating private key...
 + Generating signing request...
Error configuring OpenSSL modules
1996700352:error:25066067:DSO support routines:dlfcn_load:could not load the shared library:crypto/dso/dso_dlfcn.c:118:filename(libengines.so): libengines.so: cannot open shared object file: No such file or directory
1996700352:error:25070067:DSO support routines:DSO_load:could not load the shared library:crypto/dso/dso_lib.c:162:
1996700352:error:0E07506E:configuration file routines:module_load_dso:error loading dso:crypto/conf/conf_mod.c:224:module=engines, path=engines
1996700352:error:0E076071:configuration file routines:module_run:unknown module name:crypto/conf/conf_mod.c:165:module=engines

Вот установленные пакеты:

root@Keenetic_Ultra:/opt/etc/nginx# opkg list-installed
bash - 5.0-3
busybox - 1.31.1-1
ca-bundle - 20190110-2
ca-certificates - 20190110-2
coreutils - 8.31-1
coreutils-mktemp - 8.31-1
curl - 7.69.0-1
diffutils - 3.7-2
dropbear - 2019.78-3
entware-release - 1.0-2
findutils - 4.7.0-1
glib2 - 2.58.3-5
grep - 3.4-1
ldconfig - 2.27-9
libattr - 2.4.48-2
libblkid - 2.35.1-1
libc - 2.27-9
libcurl - 7.69.0-1
libffi - 3.2.1-4
libgcc - 8.3.0-9
libiconv-full - 1.11.1-4
libintl-full - 0.19.8.1-2
liblua - 5.1.5-7
libmbedtls - 2.16.5-1
libmount - 2.35.1-1
libncurses - 6.2-1
libncursesw - 6.2-1
libndm - 1.1.10-1a
libopenssl - 1.1.1d-2
libopenssl-conf - 1.1.1d-2
libpcre - 8.43-2
libpcre2 - 10.34-1
libpthread - 2.27-9
libreadline - 8.0-1a
librt - 2.27-9
libslang2 - 2.3.2-4
libssh2 - 1.9.0-2
libssp - 8.3.0-9
libstdcpp - 8.3.0-9
libuuid - 2.35.1-1
libxml2 - 2.9.10-1
locales - 2.27-9
mc - 4.8.23-2
ndmq - 1.0.2-5a
nginx - 1.17.8-1
openssl-util - 1.1.1d-2
opkg - 2019-06-14-dcbc142e-2
opt-ndmsv2 - 1.0-12
php7 - 7.4.3-1
php7-mod-openssl - 7.4.3-1
poorbox - 1.31.1-2
terminfo - 6.2-1
zlib - 1.2.11-3
zoneinfo-asia - 2019c-1
zoneinfo-europe - 2019c-1

 

  • Thanks 1
Link to comment
Share on other sites

Спасибо! Скрипт заработал корректно, вылезла проблема с некорректным ответом

 + Challenge validation has failed

Но с этим надеюсь, смогу разобраться ;)

PS: Вчера несколько часов искал по тексту сообщения об ошибке, по "libengines.so", в том числе и на гитхабе - ну не находился этот тред...

Link to comment
Share on other sites

  • 3 weeks later...

Обновил прошивку до 3.4.1, и отвалился SSL - Firefox при попытке зайти на сайт долго думает, и показывает ошибку pr_end_of_file_error.

Если попробовать

root@Keenetic_Ultra:/opt/etc/nginx# curl -v https://milkov.su
* TLSv1.3 (OUT), TLS handshake, Client hello (1):

и на этом все. Почему-то не проходит хендшейк, порт открыт, в конфигах nginx ничего не менялось.Сертификаты лежат на месте, не удалялись, и не просрочились ещё.

http работает нормально, перекидывывает на https:

root@Keenetic_Ultra:/opt/etc/nginx# curl -v http://milkov.su
> GET / HTTP/1.1
> Host: milkov.su
> User-Agent: curl/7.69.0
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Server: nginx/1.17.8
< Date: Wed, 20 May 2020 19:30:16 GMT
< Content-Type: text/html
< Content-Length: 169
< Connection: keep-alive
< Location: https://milkov.su/
<
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.17.8</center>
</body>
</html>

Тот же вопрос - в чем искать причину? :)

 

Link to comment
Share on other sites

Нашел, в чем дело, поправил. Дело оказалось действительно в новой прошивке, пришлось поставить костылик - что-то село на внутренний 443 порт, аналогично как раньше на 80 внутреннем сидел веб-сервер админки. Изменил правило для переадресации портов - поставил 443 (внешний) на 433 внутренний, и всё заработало опять.

Edited by Ayesh
Link to comment
Share on other sites

  • 6 months later...
  • 2 months later...
Quote

/opt/etc/nginx # bash ./dehydrated --domain xyz.abc --cron
# INFO: Using main config file /opt/etc/nginx/config
./dehydrated: /opt/bin/egrep: /bin/bash: bad interpreter: No such file or directory
./dehydrated: line 98: gawk: command not found
EXPECTED value GOT EOF
 

Не подскажите в чём ошибка? вроде всё делаю по инструкции, даже отключил engine, как рекомендовали в этом ветке форума

Установленные пакеты 

/opt/etc/nginx # opkg list-installed
bash - 5.0-4
busybox - 1.31.1-6
ca-bundle - 20200601-1
ca-certificates - 20200601-1
coreutils - 8.32-5
coreutils-mktemp - 8.32-5
curl - 7.72.0-2
diffutils - 3.7-2
dos2unix - 7.4.2-1
dropbear - 2020.81-1
entware-release - 1.0-2
findutils - 4.7.0-2
grep - 3.6-1
jsonfilter - 2018-02-04-c7e938d6-1
ldconfig - 2.27-11
libatomic - 8.4.0-11
libc - 2.27-11
libcurl - 7.72.0-2
libexpat - 2.2.10-1
libexslt - 1.1.34-2
libfreetype - 2.10.4-1
libgcc - 8.4.0-11
libgd - 2.3.0-3
libgmp - 6.1.2-2
libgnutls - 3.6.15-1
libiconv-full - 1.11.1-4
libintl-full - 0.19.8.1-2
libjpeg-turbo - 2.0.6-1
libjson-c - 0.15-1
libltdl - 2.4.6-2
liblua - 5.1.5-7
libmcrypt - 2.5.8-2
libncurses - 6.2-1
libncursesw - 6.2-1
libndm - 1.1.15-1
libnettle - 3.5.1-2
libopenssl - 1.1.1h-1
libopenssl-conf - 1.1.1h-1
libpam - 1.4.0-1
libpcre - 8.44-2
libpcre2 - 10.35-2
libpng - 1.6.37-7
libpthread - 2.27-11
libreadline - 8.0-1a
librt - 2.27-11
libssp - 8.4.0-11
libstdcpp - 8.4.0-11
libtiff - 4.1.0-3
libubox - 2020-08-06-9e52171d-1
libwebp - 1.1.0-2
libxml2 - 2.9.10-2
libxslt - 1.1.34-2
libzip-gnutls - 1.7.3-1
locales - 2.27-9
ndmq - 1.0.2-7
nginx-extras - 1.18.0-2
oniguruma - 6.9.5_rev1-3
openssl-util - 1.1.1h-1
opkg - 2020-11-24-61b3c62d-1
opt-ndmsv2 - 1.0-12a
php7 - 7.4.12-2
php7-cgi - 7.4.12-2
php7-cli - 7.4.12-2
php7-fastcgi - 7.4.12-2
php7-fpm - 7.4.12-2
php7-mod-ctype - 7.4.12-2
php7-mod-curl - 7.4.12-2
php7-mod-dom - 7.4.12-2
php7-mod-exif - 7.4.12-2
php7-mod-fileinfo - 7.4.12-2
php7-mod-gd - 7.4.12-2
php7-mod-gettext - 7.4.12-2
php7-mod-iconv - 7.4.12-2
php7-mod-json - 7.4.12-2
php7-mod-mbstring - 7.4.12-2
php7-mod-mysqli - 7.4.12-2
php7-mod-mysqlnd - 7.4.12-2
php7-mod-openssl - 7.4.12-2
php7-mod-pdo - 7.4.12-2
php7-mod-pdo-mysql - 7.4.12-2
php7-mod-session - 7.4.12-2
php7-mod-simplexml - 7.4.12-2
php7-mod-sockets - 7.4.12-2
php7-mod-xml - 7.4.12-2
php7-mod-xmlreader - 7.4.12-2
php7-mod-xmlwriter - 7.4.12-2
php7-mod-zip - 7.4.12-2
php7-pecl-mcrypt - 1.0.3-2
poorbox - 1.31.1-3
terminfo - 6.2-1
zlib - 1.2.11-3
zoneinfo-asia - 2020d-1
zoneinfo-europe - 2020d-1

 

Link to comment
Share on other sites

Теперь другая ошибка

Quote

/opt/etc/nginx # bash ./dehydrated --domain xyz.abc --cron
# INFO: Using main config file /opt/etc/nginx/config
./dehydrated: /opt/bin/egrep: /bin/bash: bad interpreter: No such file or directory
gawk: cmd. line:3: (FILENAME=- FNR=1) warning: regexp escape sequence `\u' is not a known regexp operator
EXPECTED value GOT EOF
 

 

Link to comment
Share on other sites

3 hours ago, Александр Рыжов said:

Ничего вы не поправили:(

для тех как я, которые в первый раз это делают)

Нужно было поправить файл, который был указан ранее  /opt/bin/egrep

#!/bin/bash
exec grep -E "$@"

на 

#!/bin/sh
exec grep -E "$@"

Спасибо за наводку

  • Upvote 2
Link to comment
Share on other sites

  • 9 months later...
В 22.05.2020 в 15:45, Ayesh сказал:

Нашел, в чем дело, поправил. Дело оказалось действительно в новой прошивке, пришлось поставить костылик - что-то село на внутренний 443 порт, аналогично как раньше на 80 внутреннем сидел веб-сервер админки. Изменил правило для переадресации портов - поставил 443 (внешний) на 433 внутренний, и всё заработало опять.

Наткнулся, похоже, на ту же проблему. Пытаюсь повесить nginx с SSL на алиас внешнего интерфейса, белый IP. Та же картина - сокет на 443 порту цепляется, но TLS хэндшейк не проходит, ни одного ответа. Боюсь, трюк с альтернативным портом для nginx не пройдет, по крайней мере не удается сделать форвард с 443 порта на 433 на алиасе.

Может, есть идеи как сделать форвард или освободить 443 порт на алиасе для nginx?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...