Я выполнил [отличное руководство по Digital Ocean] [1], и сертификат SSL подтвердился как действительный. Однако вход в систему Drupal для доступа к администратору больше не активируется, и страница просто перезагружается. Я включил отладку для журналов NGINX, и ниже приведены результаты. Он заканчивается:
recv() not ready (11: Resource temporarily unavailable).
Что странно, наш сайт разработчиков на Drupal работает нормально. Когда я сравниваю журналы, единственная разница в том, что это появляется на сайте разработчиков:
4 http request line: "POST /user HTTP/1.1"
Ниже приведены подробные журналы отладки. Какие-либо предложения? Ниже приведены результаты curl -vvv
на страницу входа. Также nginx/1.4.6 (Ubuntu)
2016/01/21 11:38:56 [debug] 12534#0: *6467 write new buf t:1 f:0 00000000025F8510, pos 00000000025F8510, size: 239 file: 0, size: 0 2016/01/21 11:38:56 [debug] 12534#0: *6467 http write filter: l:0 f:0 s:239 2016/01/21 11:38:56 [debug] 12534#0: *6467 http output filter "/node/add/page?render=overlay" 2016/01/21 11:38:56 [debug] 12534#0: *6467 http copy filter: "/node/add/page?render=overlay" 2016/01/21 11:38:56 [debug] 12534#0: *6467 image filter 2016/01/21 11:38:56 [debug] 12534#0: *6467 xslt filter body 2016/01/21 11:38:56 [debug] 12534#0: *6467 http postpone filter "/node/add/page?render=overlay" 00000000025F8670 2016/01/21 11:38:56 [debug] 12534#0: *6467 write old buf t:1 f:0 00000000025F8510, pos 00000000025F8510, size: 239 file: 0, size: 0 2016/01/21 11:38:56 [debug] 12534#0: *6467 write new buf t:0 f:0 0000000000000000, pos 00000000006C6460, size: 132 file: 0, size: 0 2016/01/21 11:38:56 [debug] 12534#0: *6467 write new buf t:0 f:0 0000000000000000, pos 00000000006C6740, size: 61 file: 0, size: 0 2016/01/21 11:38:56 [debug] 12534#0: *6467 http write filter: l:1 f:0 s:432 2016/01/21 11:38:56 [debug] 12534#0: *6467 http write filter limit 0 2016/01/21 11:38:56 [debug] 12534#0: *6467 writev: 432 2016/01/21 11:38:56 [debug] 12534#0: *6467 http write filter 0000000000000000 2016/01/21 11:38:56 [debug] 12534#0: *6467 http copy filter: 0 "/node/add/page?render=overlay" 2016/01/21 11:38:56 [debug] 12534#0: *6467 http finalize request: 0, "/node/add/page?render=overlay" a:1, c:1 2016/01/21 11:38:56 [debug] 12534#0: *6467 set http keepalive handler 2016/01/21 11:38:56 [debug] 12534#0: *6467 http close request 2016/01/21 11:38:56 [debug] 12534#0: *6467 http log handler 2016/01/21 11:38:56 [debug] 12534#0: *6467 free: 00000000025F76A0, unused: 0 2016/01/21 11:38:56 [debug] 12534#0: *6467 free: 00000000025E6CC0, unused: 2666 2016/01/21 11:38:56 [debug] 12534#0: *6467 free: 000000000263C350 2016/01/21 11:38:56 [debug] 12534#0: *6467 hc free: 0000000000000000 0 2016/01/21 11:38:56 [debug] 12534#0: *6467 hc busy: 0000000000000000 0 2016/01/21 11:38:56 [debug] 12534#0: *6467 tcp_nodelay 2016/01/21 11:38:56 [debug] 12534#0: *6467 reusable connection: 1 2016/01/21 11:38:56 [debug] 12534#0: *6467 event timer add: 5: 65000:1453394401016 2016/01/21 11:38:56 [debug] 12534#0: *6467 post event 0000000002681950 2016/01/21 11:38:56 [debug] 12534#0: *6467 delete posted event 0000000002681950 2016/01/21 11:38:56 [debug] 12534#0: *6467 http keepalive handler 2016/01/21 11:38:56 [debug] 12534#0: *6467 malloc: 000000000263C350:1024 2016/01/21 11:38:56 [debug] 12534#0: *6467 recv: fd:5 -1 of 1024 2016/01/21 11:38:56 [debug] 12534#0: *6467 recv() not ready (11: Resource temporarily unavailable) 2016/01/21 11:38:56 [debug] 12534#0: *6467 free: 000000000263C350 2016/01/21 11:39:10 [debug] 12534#0: *6442 event timer del: 3: 1453394350048 2016/01/21 11:39:10 [debug] 12534#0: *6442 http keepalive handler 2016/01/21 11:39:10 [debug] 12534#0: *6442 close http connection: 3 2016/01/21 11:39:10 [debug] 12534#0: *6442 reusable connection: 0 2016/01/21 11:39:10 [debug] 12534#0: *6442 free: 0000000000000000 2016/01/21 11:39:10 [debug] 12534#0: *6442 free: 00000000025E12D0, unused: 0 2016/01/21 11:39:10 [debug] 12534#0: *6442 free: 000000000263DDA0, unused: 128
[1]: https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-14-04?comment=42425
curl -vvv https ourdomain.org/user меньше
* SSLv3, рукопожатие TLS, завершено (20):
SSL-соединение с использованием ECDHE-RSA-AES256-GCM-SHA384
Сертификат сервера:
тема: CN = ourdomain.org
дата начала: 2016-01-20 20:37:00 GMT
срок действия: 2016-04-19 20:37:00 GMT
subjectAltName: наш домен.org соответствует
эмитент: C = США; O = Давайте зашифровать; CN = Let's Encrypt Authority X1
Подтвердите сертификат SSL в порядке.
GET /user HTTP/1.1
User-Agent: curl/7.35.0
Host: ourdomain.org
Accept: */*
HTTP/1.1 200 OK
Сервер nginx / 1.4.6 (Ubuntu) не занесен в черный список
Server: nginx/1.4.6 (Ubuntu)
Date: Thu, 21 Jan 2016 05:52:22 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.5.9-1ubuntu4.5
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0
X-Content-Type-Options: nosniff
Content-Language: en
X-Generator: Drupal 7 (http://drupal.org)
Похоже, это была проблема с конфигурацией в (необязательно) Доступ к домену модуль (который позволяет «Drupal Way» управлять поддоменами с помощью администратора Drupal).
«Схема URL-адреса домена» должна быть установлена на «https: //», а «Схема URL-адреса для доступа к этому домену» должна быть сделана «Активной».
Просто убедитесь, что сертификат SSL создан правильно, потому что как эта проблема ставит, «Если впоследствии https / ssl выйдет из строя из-за какой-либо проблемы с этим сайтом, администраторы не смогут легко войти в систему и изменить это».
Вы реализовали этот шаг из учебника?
return 301 https: // $ host $ request_uri;
Если это так, то вполне возможно, что вы находитесь в цикле перенаправления, потому что nginx будет 301-перенаправлять трафик с порта 80 на 443.
Само по себе это неплохо, но если у вас есть другие перенаправления в вашей конфигурации или если drupal перенаправляет на адрес http: //, вы застряли в петле.
Я предлагаю вам попробовать установить расширение Firebug в Firefox, включить сетевой модуль, выбрать «постоянный» и открыть страницу входа. Это даст вам хороший обзор запросов, которые делает ваш браузер, а затем вы сможете увидеть, действительно ли вы переключаетесь между http и https.