Назад | Перейти на главную страницу

Зашифруем с помощью lighttpd и wordpress

Я пытаюсь реализовать let's encrypt с участием certbot и я использую lighttpd на CentOS 6

Итак, это мой полный файл conf для моего хоста

$SERVER["socket"] == ":443" {
  ssl.engine = "enable"
  ssl.pemfile = "/etc/letsencrypt/live/mysite.com/web.pem"
  ssl.ca-file = "/etc/letsencrypt/live/mysite.com/chain.pem"
  server.name = "mysite.com"
  server.document-root = "/home/mysite/public_html"
  server.errorlog = "/var/log/lighttpd/mysite.com_error.log"
  accesslog.filename = "/var/log/lighttpd/mysite.com_access.log"
  ssl.cipher-list = "ECDHE-RSA-CHACHA20-POLY1305 ECDHE-ECDSA-CHACHA20-POLY1305 AES128+EECDH:AES128+EDH:!aNULL:!eNULL"
  ssl.honor-cipher-order = "enable"
  ssl.disable-client-renegotiation = "enable"
  ssl.use-sslv2= "disable"
  ssl.use-sslv3 = "disable"
}

$HTTP["scheme"] == "http" {
  $HTTP["host"] =~ "^(www.)?mysite.com$" {
    server_name = "mysite.com"

    server.document-root = "/home/mysite/public_html"
    accesslog.filename = "/home/mysite/logs/access.log"

    fastcgi.server = ( ".php" =>
      ( "localhost" =>
        (
            "socket" => "/var/run/lighttpd/php-fpm.socket.mysite"
        )
      )
    )

    url.rewrite-once = (

      # Exclude some directories from rewriting
      "^/(\.well-known|wp-admin|wp-includes|wp-content|phpmyadmin)/(.*)" => "$0",

      # Exclude .php files at root from rewriting
      "^/(.*.php)" => "$0",

      # Handle search correctly
      "^/(.*)?(?s=)(.*)$" => "/search/$3",

      # Handle permalinks and feeds
      "^/(.*)$" => "/index.php/$1",

      "^/?$" => "/index.php",

    )


    alias.url = ("/phpmyadmin" => "/usr/share/phpmyadmin/")

  }
}

Итак, первая проблема, с которой я столкнулся, заключается в том, что когда я пытаюсь перейти на https:// mysite.com Я получаю контент без изображений и стиля, поэтому возникает проблема с перезаписью URL, но я не вижу, что https включен. От браузера все еще приходит предупреждение о том, что мой сайт небезопасен.

Вторая проблема - когда я добавляю url.redirect = (".*" => "https://%0$0") Я получаю слишком много ОШИБКИ перенаправления.

Так что я озадачен. Я думаю, что проблема может быть в перезаписи, но странно, что у меня даже https не включен.

P.S. И да, я получил сообщение об успехе от certbot до всего этого.

РЕШЕНИЕ: просто установить плагин WP, который превратит все мои http-ссылки на изображения и стили на https, и теперь он работает. Ответ @mrkoopie помог мне подумать о решении таким образом, поэтому я его принимаю.

Хорошая новость заключается в том, что ваш сервер настроен правильно, если у вас нет ошибки сертификата при доступе к веб-сайту через HTTPS. Плохая новость в том, что ваш сайт настроен неправильно.

Что происходит, так это то, что содержимое HTML загружается по HTTPS. Пока все хорошо и безопасно. Но что не так, так это то, что объекты, на которые ссылается ваш HTML-контент, такие как изображения, CSS и js, ссылаются на HTTP вместо HTTPS. Это плохо, поскольку браузер не загружает незашифрованный файл, когда HTML-код загружается по HTTPS.

Чтобы решить эту проблему, убедитесь, что ваш веб-сайт ссылается на каждый файл с HTTPS. В WordPress это можно легко сделать, однако вы не указали, какую систему используете, и для каждой системы это отличается.

Так почему же загрузка объектов через HTTP плохая, когда HTML-код загружается через HTTPS? Что ж, тот факт, что вы используете HTTPS, означает, что вы хотите безопасно загружать свой контент. Основная цель состоит в том, чтобы никто не мог изменять или просматривать контент. Если вы загружаете какой-либо объект через HTTP, он уязвим для вредоносных инъекций, и любой может видеть, какой контент загружается (при условии, что они могут получить ваш трафик). Поскольку это значительно снижает безопасность, браузеры просто игнорируют любой объект, на который ссылается HTTP, когда содержимое HTML загружается через HTTPS. Настройка вашего сервера для перенаправления HTTP-трафика на https не будет работать, поскольку браузер в любом случае не будет пытаться загружать объекты.

Надеюсь это поможет.