Проблемы с Let’s Encrypt в ISPManager
Возникла задача поставить SSL сертификат на клиентский сайт, при этом требований к «крутости» SSL нет, т.к сайт будет использоваться для внутренних нужд компании. Решили взять бесплатный сертификат от Let’s Encrypt.
На хостинге стоит довольно популярная в России панель управления ISPManager, в которой уже есть модуль интеграции с Let’s Encrypt, и проблем с задачей не должно было возникнуть.
Но встроенный в ISPManager модуль Let’s Encrypt, конечно, не заработал — бесконечно висел статус «Процесс получения сертификата начат», и все. По щелчку на кнопке «Let’s Encrypt Журнал» только эта запись, в настройках модуля информация о Let’s Encrypt и ничего больше:
Попробовал создать сертификат с пунктом «Проверка через DNS» — тот же результат. И гугл и яндекс по запросам «Зависает выдача сертификата Let’s Encrypt», «ispmanager let’s encrypt проблемы», «ispmanager не ставится let’s encrypt сертификат», «SSL Let’s Encrypt в ISP manager не получает сертификат » и т.п., дают один совет — повысить в настройках панели для модулей rpc, sslcert и core_module уровень логирования до «9 — отладочная информация» и смотреть, что пишется в /usr/local/mgr5/var/ispmgr.log в момент выдачи сертификата.
Долго курил лог в момент выдачи:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 |
Nov 30 13:06:26 [15181:3783] core_module [1;36mEXTINFO Internal [][] 'func=ipaddrlist&out=xml'[0m Nov 30 13:06:26 [15181:3783] core_module [1mTRACE void ip_bind::GetIpList(bool, StringList&)[0m Nov 30 13:06:26 [15181:3783] core_security [1;36mEXTINFO Strip dangerouse tags from '<b>ВНИМАНИЕ!<b/><br/>При включении защиты от DDoS будет блокироваться любой IP-адрес.<br/>IP-адрес блокируется на 5 минут по всем портам.<br/>Если под блокировку попал Ваш IP-адрес, то необходимо просто дождаться истечения таймаута.' -> '<b>ВНИМАНИЕ!<b/><br/>При включении защиты от DDoS будет блокироваться любой IP-адрес.<br/>IP-адрес блокируется на 5 минут по всем портам.<br/>Если под блокировку попал Ваш IP-адрес, то необходимо просто дождаться истечения таймаута.</b>'[0m Nov 30 13:06:26 [15181:3783] core_security [1;36mEXTINFO Strip dangerouse tags from '<b>ВНИМАНИЕ!<b/><br/>При включении защиты от DDoS будет блокироваться любой IP-адрес.<br/>IP-адрес блокируется на 5 минут по всем портам.<br/>Если под блокировку попал Ваш IP-адрес, то необходимо просто дождаться истечения таймаута.' -> '<b>ВНИМАНИЕ!<b/><br/>При включении защиты от DDoS будет блокироваться любой IP-адрес.<br/>IP-адрес блокируется на 5 минут по всем портам.<br/>Если под блокировку попал Ваш IP-адрес, то необходимо просто дождаться истечения таймаута.</b>'[0m Nov 30 13:06:26 [15181:3783] core_decoration [1;36mEXTINFO Replace form value 'aliases' with param value ''[0m Nov 30 13:06:26 [15181:3783] core_decoration [1;35mWARNING Duplicate value 'on' for input '/doc/show_cache'[0m Nov 30 13:06:26 [15181:3783] core_decoration [1;36mEXTINFO Use defaults for 'keylen'[0m Nov 30 13:06:26 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][root] 'args=filename&func=check.path&name=crtname&value=*домен*%5Fle1'[0m Nov 30 13:06:26 [15181:3783] core_decoration [1;36mEXTINFO New value crtname = '*домен*_le1'[0m Nov 30 13:06:26 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][root] 'args=allowaster&func=check.domain&name=domain&value=*домен*'[0m Nov 30 13:06:26 [15181:3783] core_decoration [1;36mEXTINFO New value domain = '*домен*'[0m Nov 30 13:06:26 [15181:3783] sslcert [1mTRACE virtual void isppriv_plugin_letsencrypt::ActionLetsencryptGenerate::Set(isp_api::Session&, const string&) const[0m Nov 30 13:06:30 [15181:3783] proc [1;36mEXTINFO Run '/bin/sh -c openssl\ rsa\ -text\ -noout' pid 5920[0m Nov 30 13:06:30 [15181:3783] proc [1;36mEXTINFO Process 5920 finished with status 0[0m Nov 30 13:06:30 [15181:3783] sslcert [1;33mDEBUG plugin_letsencrypt.cpp:592 Letsencrypt new record[0m Nov 30 13:06:30 [15181:3783] sslcert [1;33mDEBUG plugin_letsencrypt.cpp:610 Letsencrypt not from webdomain[0m Nov 30 13:06:30 [15181:3783] core_module [1mTRACE AfterExecute user = '*юзер*'[0m Nov 30 13:06:30 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'city=XX&code=XX&crttype=selfsigned&department=XX&domain=*домен*&email=webmaster%40*домен*&func=sslcert.add&name=*домен*%5Fle1&org=XX&sok=ok&state=XX&su=*юзер*'[0m Nov 30 13:06:30 [15181:3783] wizard [1;36mEXTINFO Wizard 'sslcert.add' done[0m Nov 30 13:06:30 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'city=XX&code=XX&crttype=selfsigned&department=XX&domain=*домен*&email=webmaster%40*домен*&func=sslcert.change&name=*домен*%5Fle1&org=XX&state=XX&su=*юзер*&out=devel&sok=ok'[0m Nov 30 13:06:30 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'city=XX&code=XX&crttype=selfsigned&department=XX&domain=*домен*&email=webmaster%40*домен*&func=sslcert.change&name=*домен*%5Fle1&org=XX&state=XX&su=*юзер*&out=devel'[0m Nov 30 13:06:30 [15181:3783] sslcert [1mTRACE virtual void isppriv_action_cert::WizardSSLAdd::WizGet(isp_api::Session&) const[0m Nov 30 13:06:30 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'city=XX&code=XX&crttype=selfsigned&department=XX&domain=*домен*&email=webmaster%40*домен*&func=sslcert.setcrt&name=*домен*%5Fle1&org=XX&state=XX&su=*юзер*&out=devel&sok=ok'[0m Nov 30 13:06:30 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'city=XX&code=XX&crttype=selfsigned&department=XX&domain=*домен*&email=webmaster%40*домен*&func=sslcert.setcrt&name=*домен*%5Fle1&org=XX&state=XX&su=*юзер*&out=devel'[0m Nov 30 13:06:30 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'city=XX&code=XX&crttype=selfsigned&department=XX&domain=*домен*&email=webmaster%40*домен*&func=sslcert.selfsigned&name=*домен*%5Fle1&org=XX&state=XX&su=*юзер*&out=devel&sok=ok'[0m Nov 30 13:06:30 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'city=XX&code=XX&crttype=selfsigned&department=XX&domain=*домен*&email=webmaster%40*домен*&func=sslcert.selfsigned&name=*домен*%5Fle1&org=XX&state=XX&su=*юзер*&out=devel'[0m Nov 30 13:06:30 [15181:3783] core_decoration [1;36mEXTINFO Use defaults for 'code'[0m Nov 30 13:06:30 [15181:3783] core_decoration [1;36mEXTINFO Use defaults for 'state'[0m Nov 30 13:06:30 [15181:3783] core_decoration [1;36mEXTINFO Use defaults for 'city'[0m Nov 30 13:06:30 [15181:3783] core_decoration [1;36mEXTINFO Use defaults for 'org'[0m Nov 30 13:06:30 [15181:3783] core_decoration [1;36mEXTINFO Use defaults for 'department'[0m Nov 30 13:06:30 [15181:3783] core_decoration [1;36mEXTINFO Use defaults for 'email'[0m Nov 30 13:06:30 [15181:3783] core_decoration [1;36mEXTINFO Use defaults for 'keylen'[0m Nov 30 13:06:30 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'args=allowaster&func=check.domain&name=domain&value=*домен*'[0m Nov 30 13:06:30 [15181:3783] core_decoration [1;36mEXTINFO New value domain = '*домен*'[0m Nov 30 13:06:30 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'args=filename&func=check.path&name=name&value=*домен*%5Fle1'[0m Nov 30 13:06:30 [15181:3783] core_decoration [1;36mEXTINFO New value name = '*домен*_le1'[0m Nov 30 13:06:30 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'args=&func=check.ccode&name=code&value=XX'[0m Nov 30 13:06:30 [15181:3783] core_decoration [1;36mEXTINFO New value code = 'XX'[0m Nov 30 13:06:30 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'args=&func=check.alphanumspace&name=state&value=XX'[0m Nov 30 13:06:30 [15181:3783] core_decoration [1;36mEXTINFO New value state = 'XX'[0m Nov 30 13:06:30 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'args=&func=check.alphanumspace&name=city&value=XX'[0m Nov 30 13:06:30 [15181:3783] core_decoration [1;36mEXTINFO New value city = 'XX'[0m Nov 30 13:06:30 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'args=&func=check.alphanumspace&name=org&value=XX'[0m Nov 30 13:06:30 [15181:3783] core_decoration [1;36mEXTINFO New value org = 'XX'[0m Nov 30 13:06:30 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'args=&func=check.alphanumspace&name=department&value=XX'[0m Nov 30 13:06:30 [15181:3783] core_decoration [1;36mEXTINFO New value department = 'XX'[0m Nov 30 13:06:30 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'args=&func=check.email&name=email&value=webmaster%40*домен*'[0m Nov 30 13:06:30 [15181:3783] core_decoration [1;36mEXTINFO New value email = 'webmaster@*домен*'[0m Nov 30 13:06:30 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'args=&func=check.date&name=start%5Fdate&value=2017%2D11%2D30'[0m Nov 30 13:06:30 [15181:3783] core_decoration [1;36mEXTINFO New value start_date = '2017-11-30'[0m Nov 30 13:06:30 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'args=&func=check.date&name=end%5Fdate&value=2018%2D11%2D30'[0m Nov 30 13:06:30 [15181:3783] core_decoration [1;36mEXTINFO New value end_date = '2018-11-30'[0m Nov 30 13:06:31 [15181:3783] core_decoration [1;36mEXTINFO Store defaults for 'code'[0m Nov 30 13:06:31 [15181:3783] core_decoration [1;36mEXTINFO Store defaults for 'state'[0m Nov 30 13:06:31 [15181:3783] core_decoration [1;36mEXTINFO Store defaults for 'city'[0m Nov 30 13:06:31 [15181:3783] core_decoration [1;36mEXTINFO Store defaults for 'org'[0m Nov 30 13:06:31 [15181:3783] core_decoration [1;36mEXTINFO Store defaults for 'department'[0m Nov 30 13:06:31 [15181:3783] core_decoration [1;36mEXTINFO Store defaults for 'email'[0m Nov 30 13:06:31 [15181:3783] core_decoration [1;36mEXTINFO Store defaults for 'keylen'[0m Nov 30 13:06:31 [15181:3783] core_module [1mTRACE AfterExecute user = '*юзер*'[0m Nov 30 13:06:31 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'elid=*домен*&func=webdomain.edit&secure=on&sok=ok&ssl_cert=*домен*%5Fle1&su=*юзер*'[0m Nov 30 13:06:31 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'elid=*домен*&func=webdomain.edit&secure=on&ssl_cert=*домен*%5Fle1&su=*юзер*&out=devel'[0m Nov 30 13:06:31 [15181:3783] web [1;36mEXTINFO placement of configuration file: '/etc/httpd/conf/vhosts/*юзер*/*домен*'[0m Nov 30 13:06:31 [15181:3783] web [1;36mEXTINFO placement of configuration file: '/etc/nginx/vhosts/*юзер*/*домен*.conf'[0m Nov 30 13:06:31 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'domain_name=*домен*%20&func=sslcert.domain.getlist&slist_name=ssl%5Fcert&sok=ok&su=*юзер*'[0m Nov 30 13:06:31 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'func=sslcert&su=*юзер*'[0m Nov 30 13:06:31 [15181:3783] sslcert [1;33mDEBUG action_cert.cpp:531 Check '*домен*'[0m Nov 30 13:06:31 [15181:3783] sslcert [1;36mEXTINFO Certificate domain name '*домен*' match '*домен*_le1'[0m Nov 30 13:06:31 [15181:3783] sslcert [1;33mDEBUG action_cert.cpp:531 Check '*домен*'[0m Nov 30 13:06:31 [15181:3783] sslcert [1;36mEXTINFO Certificate domain name '*домен*' match '*домен*_le2'[0m Nov 30 13:06:31 [15181:3783] sslcert [1;33mDEBUG action_cert.cpp:556 ssllist = <?xml version="1.0" encoding="UTF-8"?> <doc lang="ru" func="sslcert.domain.getlist" binary="/ispmgr" host="https://10595.vps.hc.ru:1500" themename="orion"> <slist name="ssl_cert"> <val key="*домен*_le1">*домен*_le1 (*домен*)</val> <val key="*домен*_le2">*домен*_le2 (*домен*)</val> <msg>selfsigned</msg> </slist> </doc> [0m Nov 30 13:06:31 [15181:3783] core_module [1;36mEXTINFO Internal [][] 'func=ipaddrlist&out=xml'[0m Nov 30 13:06:31 [15181:3783] core_module [1mTRACE void ip_bind::GetIpList(bool, StringList&)[0m Nov 30 13:06:31 [15181:3783] core_security [1;36mEXTINFO Strip dangerouse tags from '<b>ВНИМАНИЕ!<b/><br/>При включении защиты от DDoS будет блокироваться любой IP-адрес.<br/>IP-адрес блокируется на 5 минут по всем портам.<br/>Если под блокировку попал Ваш IP-адрес, то необходимо просто дождаться истечения таймаута.' -> '<b>ВНИМАНИЕ!<b/><br/>При включении защиты от DDoS будет блокироваться любой IP-адрес.<br/>IP-адрес блокируется на 5 минут по всем портам.<br/>Если под блокировку попал Ваш IP-адрес, то необходимо просто дождаться истечения таймаута.</b>'[0m Nov 30 13:06:31 [15181:3783] core_security [1;36mEXTINFO Strip dangerouse tags from '<b>ВНИМАНИЕ!<b/><br/>При включении защиты от DDoS будет блокироваться любой IP-адрес.<br/>IP-адрес блокируется на 5 минут по всем портам.<br/>Если под блокировку попал Ваш IP-адрес, то необходимо просто дождаться истечения таймаута.' -> '<b>ВНИМАНИЕ!<b/><br/>При включении защиты от DDoS будет блокироваться любой IP-адрес.<br/>IP-адрес блокируется на 5 минут по всем портам.<br/>Если под блокировку попал Ваш IP-адрес, то необходимо просто дождаться истечения таймаута.</b>'[0m Nov 30 13:06:31 [15181:3783] core_decoration [1;36mEXTINFO Sort slist 'php_cgi_version'[0m Nov 30 13:06:31 [15181:3783] core_decoration [1;35mWARNING Duplicate value 'on' for input '/doc/show_cache'[0m Nov 30 13:06:31 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'args=&func=check.email&name=email&value=webmaster%40*домен*'[0m Nov 30 13:06:31 [15181:3783] core_decoration [1;36mEXTINFO New value email = 'webmaster@*домен*'[0m Nov 30 13:06:31 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'args=&func=check.path&name=dirindex&value=index.php'[0m Nov 30 13:06:31 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'args=&func=check.path&name=dirindex&value=index.html'[0m Nov 30 13:06:31 [15181:3783] core_decoration [1;36mEXTINFO New value dirindex = 'index.php index.html'[0m Nov 30 13:06:31 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'args=1%2C65535&func=check.int&name=ssl%5Fport&value=443'[0m Nov 30 13:06:31 [15181:3783] core_module [1;33mDEBUG action_check.cpp:246 signed type[0m Nov 30 13:06:31 [15181:3783] core_module [1;33mDEBUG action_check.cpp:246 signed type[0m Nov 30 13:06:31 [15181:3783] core_module [1;33mDEBUG action_check.cpp:246 signed type[0m Nov 30 13:06:31 [15181:3783] core_decoration [1;36mEXTINFO New value ssl_port = '443'[0m Nov 30 13:06:31 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'args=0%2C1000&func=check.int&name=rotation%5Fcount&value=10'[0m Nov 30 13:06:31 [15181:3783] core_module [1;33mDEBUG action_check.cpp:246 signed type[0m Nov 30 13:06:31 [15181:3783] core_module [1;33mDEBUG action_check.cpp:246 signed type[0m Nov 30 13:06:31 [15181:3783] core_module [1;33mDEBUG action_check.cpp:246 signed type[0m Nov 30 13:06:31 [15181:3783] core_decoration [1;36mEXTINFO New value rotation_count = '10'[0m Nov 30 13:06:31 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'elid=*домен*%5Fle1&func=sslcert.edit&su=*юзер*'[0m Nov 30 13:06:31 [15181:3783] sslcert [1mTRACE virtual void isppriv_action_cert::ActionSSLCert::Get(isp_api::Session&, const string&) const[0m Nov 30 13:06:31 [15181:3783] sslcert [1;32mINFO KEY: C VALUE: XX[0m Nov 30 13:06:31 [15181:3783] sslcert [1;32mINFO KEY: CN VALUE: *домен*[0m Nov 30 13:06:31 [15181:3783] sslcert [1;32mINFO KEY: L VALUE: XX[0m Nov 30 13:06:31 [15181:3783] sslcert [1;32mINFO KEY: O VALUE: XX[0m Nov 30 13:06:31 [15181:3783] sslcert [1;32mINFO KEY: OU VALUE: XX[0m Nov 30 13:06:31 [15181:3783] sslcert [1;32mINFO KEY: ST VALUE: XX[0m Nov 30 13:06:31 [15181:3783] sslcert [1;32mINFO KEY: emailAddress VALUE: webmaster@*домен*[0m Nov 30 13:06:31 [15181:3783] web [1;32mINFO Process 'cert' 4 features left[0m Nov 30 13:06:31 [15181:3783] web [1;36mEXTINFO placement of configuration file: '/etc/nginx/vhosts/*юзер*/*домен*.conf'[0m Nov 30 13:06:31 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'elid=*домен*%5Fle2&func=sslcert.edit&su=*юзер*'[0m Nov 30 13:06:31 [15181:3783] sslcert [1mTRACE virtual void isppriv_action_cert::ActionSSLCert::Get(isp_api::Session&, const string&) const[0m Nov 30 13:06:31 [15181:3783] sslcert [1;32mINFO KEY: C VALUE: XX[0m Nov 30 13:06:31 [15181:3783] sslcert [1;32mINFO KEY: CN VALUE: *домен*[0m Nov 30 13:06:31 [15181:3783] sslcert [1;32mINFO KEY: L VALUE: XX[0m Nov 30 13:06:31 [15181:3783] sslcert [1;32mINFO KEY: O VALUE: XX[0m Nov 30 13:06:31 [15181:3783] sslcert [1;32mINFO KEY: OU VALUE: XX[0m Nov 30 13:06:31 [15181:3783] sslcert [1;32mINFO KEY: ST VALUE: XX[0m Nov 30 13:06:31 [15181:3783] sslcert [1;32mINFO KEY: emailAddress VALUE: webmaster@*домен*[0m Nov 30 13:06:31 [15181:3783] web [1;32mINFO Process 'nginx' 4 features left[0m Nov 30 13:06:31 [15181:3783] web [1;36mEXTINFO placement of configuration file: '/etc/httpd/conf/vhosts/*юзер*/*домен*'[0m Nov 30 13:06:31 [15181:3783] web [1;32mINFO Process 'apache' 2 features left[0m Nov 30 13:06:31 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'elid=*домен*&func=webdomain.diraccess&secure=on&sok=ok&ssl_cert=*домен*%5Fle1&su=*юзер*&active=on&aliases=&analyzer=off&autosubdomain=off&basedir=on&cgi=on&cgi_ext=&charset=UTF%2D8&currname=*домен*&ddosshield=off&dirindex=index.php%20index.html&docroot=%2Fvar%2Fwww%2F*юзер*%2Fdata%2Fwww%2F*домен*%2Fpublic&email=webmaster%40*домен*&enabled=on&foreground=off&gid=504&has_changed_fields=&hfields=nginx%5Fburstrequest&hide_autosubdomain=&home=%2Fvar%2Fwww%2F*юзер*%2Fdata&hsts=on&ipaddrs=2a01%3Ad8%3A4%3A2%3A%3A3cc%2079.174.76.123&ipsrc=manual&limit_cgi=on&limit_ssl=on&listen_on=127.0.0.1%3A8080&listen_on_ssl=&log_access=on&log_error=on&name=*домен*&nginx_frontend=on&owner=*юзер*&php=on&php_cgi_version=isp%2Dphp71&php_enable=on&php_mode=php%5Fmode%5Fcgi&preset=%23custom&redirect_http=off&rotation_count=10&rotation_period=every%5Fday&show_cache=on&show_params=yes&srv_cache=off&srv_gzip=off&ssi=on&ssl=off&ssl_port=443&uid=504&out=devel&plid=&webreconfigure=on'[0m Nov 30 13:06:31 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'elid=*домен*&func=domain.autorecords&owner=*юзер*&su=*юзер*&type=create&web=on&web_ips=2a01%3Ad8%3A4%3A2%3A%3A3cc%2079.174.76.123&web_record=*домен*'[0m Nov 30 13:06:31 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'elid=*домен*&func=domain.record'[0m Nov 30 13:06:31 [15181:3783] web [1;36mEXTINFO placement of configuration file: '/etc/nginx/vhosts/*юзер*/*домен*.conf'[0m Nov 30 13:06:31 [15181:3783] proc [1;36mEXTINFO Run '/bin/sh -c /usr/sbin/nginx\ -t' pid 5921[0m Nov 30 13:06:31 [15181:3783] proc [1;36mEXTINFO Process 5921 finished with status 0[0m Nov 30 13:06:31 [15181:3783] web [1;36mEXTINFO placement of configuration file: '/etc/httpd/conf/vhosts/*юзер*/*домен*'[0m Nov 30 13:06:31 [15181:3783] proc [1;36mEXTINFO Run '/bin/sh -c /usr/sbin/apachectl\ configtest' pid 5922[0m Nov 30 13:06:31 [15181:3783] proc [1;36mEXTINFO Process 5922 finished with status 0[0m Nov 30 13:06:31 [15181:3783] core_module [1;36mEXTINFO Internal [*мой_ip*][*юзер*] 'analyzer_secure=off&elid=%2Fwebstat&func=webdomain.diraccess.delete&plid=*домен*'[0m Nov 30 13:06:31 [15181:3783] core_decoration [1;36mEXTINFO Store defaults for 'keylen'[0m Nov 30 13:06:31 [15181:3783] core_module [1;36mEXTINFO Internal [][] 'func=nginx.restart'[0m Nov 30 13:06:31 [15181:3783] core_module [1;36mEXTINFO Internal [][] 'func=nginx.restart'[0m Nov 30 13:06:31 [15181:3783] core_module [1;36mEXTINFO Internal [][] 'func=apache.restart'[0m Nov 30 13:06:31 [15181:3783] libmgr [1;36mEXTINFO Thread 3e400398e7727e0f finished[0m Nov 30 13:06:31 [15181:3] libmgr [1;36mEXTINFO Start thread [0m Nov 30 13:06:31 [15181:3784] rpc [36mEXT Set default language to 'ru'[0m Nov 30 13:06:31 [15181:3784] core_module [1;36mEXTINFO Internal [][] 'func=authenticate.system&username=root'[0m Nov 30 13:06:31 [15181:3784] core_module [1;32mINFO Request [*мой_ip*][root] 'clickstat=yes&func=sslcert&operafake=1512036393494&sfrom=ajax'[0m Nov 30 13:06:31 [15181:3784] core_module [1;36mEXTINFO Internal [][] 'func=user'[0m Nov 30 13:06:31 [15181:3784] libmgr [1;36mEXTINFO Thread c0b045ff4187f2c4 finished[0m Nov 30 13:06:31 [15181:3] libmgr [1;36mEXTINFO Start thread [0m Nov 30 13:06:31 [15181:3785] rpc [36mEXT Set default language to 'ru'[0m Nov 30 13:06:31 [15181:3785] core_module [1;36mEXTINFO Internal [][] 'func=authenticate.system&username=root'[0m Nov 30 13:06:31 [15181:3785] core_module [1;32mINFO Request [*мой_ip*][root] 'func=sslcert.filter&operafake=1512036393611&sfrom=ajax'[0m Nov 30 13:06:31 [15181:3785] libmgr [1;36mEXTINFO Thread 5ea811932480b10f finished[0m Nov 30 13:06:33 [15181:1188] proc [1;36mEXTINFO Run '/bin/sh -c service\ nginx\ reload' pid 5928[0m Nov 30 13:06:33 [15181:1187] proc [1;36mEXTINFO Run '/bin/sh -c /usr/sbin/apachectl\ graceful' pid 5929[0m Nov 30 13:06:34 [15181:1188] proc [1;36mEXTINFO Process 5928 finished with status 0[0m Nov 30 13:06:34 [15181:1187] proc [1;36mEXTINFO Process 5929 finished with status 0[0m Nov 30 13:06:50 [15181:3] libmgr [1;36mEXTINFO Start thread [0m Nov 30 13:06:50 [15181:3786] rpc [36mEXT Set default language to 'ru'[0m Nov 30 13:06:50 [15181:3786] core_module [1;36mEXTINFO Internal [][] 'func=authenticate.system&username=root'[0m Nov 30 13:06:50 [15181:3786] core_module [1;32mINFO Request [*мой_ip*][root] 'elid=*юзер*%25%23%25*домен*%5Fle2&elname=*домен*%5Fle2&func=letsencrypt.logs&operafake=1512036412196&plid=&sfrom=ajax'[0m Nov 30 13:06:50 [15181:3786] sslcert [1;33mDEBUG plugin_letsencrypt.cpp:1240 log user = *юзер*, id = 6 cert =*домен*_le2[0m Nov 30 13:06:50 [15181:3786] libmgr [1;36mEXTINFO Thread b1c1193ebfc709fc finished[0m Nov 30 13:06:52 [15181:3] libmgr [1;36mEXTINFO Start thread [0m Nov 30 13:06:52 [15181:3787] rpc [36mEXT Set default language to 'ru'[0m Nov 30 13:06:52 [15181:3787] core_module [1;36mEXTINFO Internal [][] 'func=authenticate.system&username=root'[0m Nov 30 13:06:52 [15181:3787] core_module [1;32mINFO Request [*мой_ip*][root] 'clickstat=yes&func=sslcert&operafake=1512036413815&sfrom=ajax'[0m Nov 30 13:06:52 [15181:3787] core_module [1;36mEXTINFO Internal [][] 'func=user'[0m Nov 30 13:06:52 [15181:3787] libmgr [1;36mEXTINFO Thread 776c219a4d55390d finished[0m Nov 30 13:06:52 [15181:3] libmgr [1;36mEXTINFO Start thread [0m Nov 30 13:06:52 [15181:3788] rpc [36mEXT Set default language to 'ru'[0m Nov 30 13:06:52 [15181:3788] core_module [1;36mEXTINFO Internal [][] 'func=authenticate.system&username=root'[0m Nov 30 13:06:52 [15181:3788] core_module [1;32mINFO Request [*мой_ip*][root] 'func=sslcert.filter&operafake=1512036413923&sfrom=ajax'[0m Nov 30 13:06:52 [15181:3788] libmgr [1;36mEXTINFO Thread 057e0c4605fe0a63 finished[0m |
Далее постоянно идут запросы функции sslcert, строки вида:
1 2 3 4 5 6 7 8 9 10 11 |
Nov 30 13:08:19 [15181:3] libmgr [1;36mEXTINFO Start thread [0m Nov 30 13:08:19 [15181:3795] rpc [36mEXT Set default language to 'ru'[0m Nov 30 13:08:19 [15181:3795] core_module [1;36mEXTINFO Internal [][] 'func=authenticate.system&username=root'[0m Nov 30 13:08:19 [15181:3795] core_module [1;32mINFO Request [*мой_ip*][root] 'func=sslcert.filter&operafake=1512036501496&sfrom=ajax'[0m Nov 30 13:08:19 [15181:3795] libmgr [1;36mEXTINFO Thread 8861642366bfc3ea finished[0m Nov 30 13:09:20 [15181:3] libmgr [1;36mEXTINFO Start thread [0m Nov 30 13:09:20 [15181:3796] rpc [36mEXT Set default language to 'ru'[0m Nov 30 13:09:20 [15181:3796] core_module [1;36mEXTINFO Internal [][] 'func=authenticate.system&username=root'[0m Nov 30 13:09:20 [15181:3796] core_module [1;32mINFO Request [*мой_ip*][root] 'clickstat=yes&func=sslcert&operafake=1512036562384&sfrom=ajax'[0m Nov 30 13:09:20 [15181:3796] core_module [1;36mEXTINFO Internal [][] 'func=user'[0m Nov 30 13:09:20 [15181:3796] libmgr [1;36mEXTINFO Thread 27a9748e9a619ba6 finished[0m |
Может быть Вам логи скажут больше чем мне, я же вменяемого описания ошибок в них не увидел, и решил поставить сертификат стандартной утилитой Certbot.
Какое то время ушло на понимание его работы — в сети и на хабре довольно много мануалов по установке Let’s Encrypt с помощью Certbot, и каждый чем то отличается. При этом из-за настроек домена сделанных ISPManager, сразу установить сертификат не получилось.
В итоге решил задачу следующим образом:
- выключил ssl для домена
- удалил все старые сертификаты домена
- далее по инструкции из статьи https://habrahabr.ru/post/279695/
- создал конфиг файл в /etc/nginx/template/letsencrypt.conf
123456location ~ ^/(.well-known/acme-challenge/.*)$ {proxy_pass http://127.0.0.1:9999/$1;proxy_set_header X-Real-IP $remote_addr;proxy_set_header Host $http_host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;} - подключил конфиг в нужный домен
1include template/letsencrypt.conf; - закомментировал строки в файле /etc/nginx/vhosts-includes/letsencrypt.conf (о нем ниже)
- выполнил команду
1certbot --email *мое_мыло* --agree-tos --renew-by-default --standalone --standalone-supported-challenges http-01 --http-01-port 9999 --server https://acme-v01.api.letsencrypt.org/directory certonly -d *нужный_домен*
- создал конфиг файл в /etc/nginx/template/letsencrypt.conf
- включил ssl для домена, выбрав самоподписанный сертификат, указав параметр «Перенаправлять HTTP-запросы в HTTPS» (в nginx конфиг для 80го порта добавляется строчка return 301 https://$host:443$request_uri; )
- прописал в конфиге nginx’а путь к новому сертификату, закомментировав все лишние строки для самоподписанного сертификата.
Конфиг апача трогать не пришлось, т.к. он висит на бекэнде, а на фронте nginx
12ssl_certificate /etc/letsencrypt/live/*мой_домен*/cert.pem;ssl_certificate_key /etc/letsencrypt/live/*мой_домен*/privkey.pem; - Перезапускаем nginx — systemctl restart nginx
- сделал бекап рабочего конфига в той же директории, т.к. если через панель управления «Изменить» параметры домена, ему подставится самоподписанный сертификат
- осталось записать конфиг в SQLite базу ISPManager’а, чтобы после сохранения параметров домена по кнопке «Изменить» ничего не слетало.
Таким образом было сделано то, что стандартный модуль интеграции Let’s Encrypt в ISPManager’е должен был сделать автоматически, но не сделал.
P.S.
ISPManager’ом должна была создаться папка в /usr/local/mgr5/www/letsencrypt, которая по какой то причине не создавалась, при этом в файле /etc/nginx/vhosts-includes/letsencrypt.conf был такой конфиг:
1 2 3 |
location ^~ /.well-known/acme-challenge/ { alias /usr/local/mgr5/www/letsencrypt/; } |
Т.е. в /usr/local/mgr5/www/letsencrypt/ сохраняются ключи, переданные сервером Let’s Encrypt, а по url /.well-known/acme-challenge/*ключ* letsencrypt.org убеждается, что мы являемся владельцем домена.
Данный конфиг закомментировал, чтобы не возникло конфликта с файлом, созданным на шаге 3.1.
P.P.S
Справку по Certbot можно получить по certbot —help или certbot —help all — они описывают параметры команды шага 3.4.
Например:
—standalone Run a standalone webserver for authentication
—nginx Use the Nginx plugin for authentication & installation
—webroot Place files in a server’s webroot folder for authentication
—manual Obtain certificates interactively, or using shell script