Запуск Docusaurus с HTTPS = true дает ERR_SSL_PROTOCOL_ERROR - PullRequest
1 голос
/ 12 апреля 2020

Мы создаем V2 Docusaurus веб-сайт.

После создания веб-сайта на сервере мы вполне могли бы использовать его с https. Вот часть my_server_block.conf:

server {
  listen  3001 ssl;

  ssl_certificate      /certs/server.crt;
  ssl_certificate_key  /certs/server.key;

  ssl_session_cache    shared:SSL:1m;
  ssl_session_timeout  5m;

  ssl_ciphers  HIGH:!aNULL:!MD5;
  ssl_prefer_server_ciphers  on;

  location / {
    proxy_pass http://localhost:3002;
    proxy_redirect off;
    proxy_set_header Host $host:$server_port;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Ssl on;
  }
}

В localhost http работает. Однако сейчас нам нужно проверить https на localhost. Но https возвращает ошибку, хотя я ее запустил HTTPS=true yarn start: This site can’t provide a secure connection localhost sent an invalid response. ERR_SSL_PROTOCOL_ERROR:

enter image description here

Кто-нибудь знает, что я должен сделать, чтобы сделать https работа на локальном хосте?

Редактировать 1: Я пытался HTTPs=true SSL_CRT_FILE=certs/server.crt SSL_KEY_FILE=certs/server.key yarn start, https://localhost:3001 все еще возвращал ту же ошибку. Обратите внимание, что certs/server.crt и certs/server.crt - это файлы, которые заставляют https работать на нашем производственном сервере через ngnix:

server {
  listen  3001 ssl;

  ssl_certificate      /certs/server.crt;
  ssl_certificate_key  /certs/server.key;

Ответы [ 3 ]

1 голос
/ 15 апреля 2020

Вы используете Nginx, поэтому используйте его для разгрузки SSL (ваша текущая конфигурация) и не запускайте https на сайте Docusaurus. Таким образом, пользователь в браузере будет использовать https, а Docusaurus будет использовать http.

Если вы запустите https на сайте Docusaurus и будете использовать прокси-сервер с http proxy_pass http://localhost:3002;, тогда возникает очевидная проблема - соединение по протоколу http с конечной точкой https. Конечно, вы можете использовать прокси-протокол с протоколом https proxy_pass https://localhost:3002;, но для этого может потребоваться дополнительная настройка. Просто будьте проще и используйте разгрузку SSL в Nginx.

1 голос
/ 18 апреля 2020

Существует проблема с поддержкой https на локальном хосте по адресу response-dev-utils@^v9.0.3, которая является зависимостью docusaurus.

https://github.com/facebook/create-react-app/issues/8075

https://github.com/facebook/create-react-app/pull/8079

Исправлено в react-dev-utils@10.1.0

0 голосов
/ 13 апреля 2020

Docusaurus 2 использует утилиты Create React App для внутреннего использования, и вам может потребоваться указать путь к вашему сертификату и ключу в соответствии с инструкциями здесь . Я не знаком с конфигурацией сервера, поэтому не могу вам помочь.

Может быть, этот ответ будет полезен - Как я могу предоставить SSL-сертификат с помощью create-реагировать-приложение?

...