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

Невозможно выполнить POST / GET через SSL

Я следил этот учебник установить parse-server на дропле DigitalOcean Ubuntu. Я также установил parse-dashboard.

Все работает хорошо, за исключением того, что я не могу curl с помощью SSL. Обычный HTTP работает отлично. то есть:

  curl -H "X-Parse-Application-Id: AppID" https://mywebsite/parse/classes/GameScore

возвращается Cannot GET /classes/GameScore.

Я также не могу получить доступ к parse-dashboard над SSL, но HTTP работает нормально (что означает, что мои ключи могут протечь).

Запросы POST возвращают Cannot POST.

Я пробовал включать / отключать брандмауэр (ufw), но это ничего не меняет.

Я могу сохранять данные с помощью SDK, хотя он работает медленно. Мой файл конфигурации nginx такой же, как в учебнике.

Любые идеи?

Редактировать:

Конфигурация Nginx:

# HTTP - redirect all requests to HTTPS
server {
    listen 80;
    listen [::]:80 default_server ipv6only=on;
    return 301 https://$host$request_uri;
}

# HTTPS - serve HTML from /usr/share/nginx/html, proxy requests to /parse/
# through to Parse Server
server {
        listen 443;
        server_name your_domain_name;

        root /usr/share/nginx/html;
        index index.html index.htm;

        ssl on;
        # Use certificate and key provided by Let's Encrypt:
        ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

        # Pass requests for /parse/ to Parse Server instance at localhost:1337
        location /parse/ {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-NginX-Proxy true;
                proxy_pass http://localhost:1337/;
                proxy_ssl_session_reuse off;
                proxy_set_header Host $http_host;
                proxy_redirect off;
        }

        location / {
                try_files $uri $uri/ =404;
        }
}

netstat -anlp | grep 443:

netstat -anlp | grep 443
(No info could be read for "-p": geteuid()=1000 but you should be root.)
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN 

 -   

HTTPS В руководстве есть ошибка, установите для proxy_pass значение

proxy_pass http://localhost:1337/parse/;

и запрос curl должен выполняться без порта 1337, как этот

curl -H "X-Parse-Application-Id: appID" https://example.com/parse/classes/SomeClassName

Панель приборов

Я решил, что я SSH-туннель к серверу и подключитесь к Dashboard как локальный хост, это означает, что вам не нужны никакие учетные данные, и он будет работать по http на localhost, потому что вы будете защищены через SSH-туннель, я также включаю Dashboard только тогда, когда мне это нужно. .как настроить SSH-туннель