Beantwortet

RestAPI nach 22.3 Update


Benutzerebene 2
Abzeichen +1

Hallo zusammen,

seit dem Umstieg auf 22.3 klappt der Zugriff auf die API nicht mehr, wir erhalten durchgehend Error 500, vielleicht kann ja wer helfen:

Lokaler nginx-Server mit SSL (da ja wohl seit 22.3 Pflicht) und self-signed cert.

nginx-config:

server {
listen 80;
server_name erp.hegro-mb.local;
return 301 https://erp.hegro-mb.local$request_uri;
}

server {

listen 443 ssl;
server_name erp.hegro-mb.local;
root /var/www/erp/www;
index index.html index.htm index.php;

add_header X-Frame-Options SAMEORIGIN;

ssl_certificate /etc/nginx/ssl/erp.crt;
ssl_certificate_key /etc/nginx/ssl/erp.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}

location / {
try_files $uri $uri/ /index.php$is_args$args;
}

location /api/ {
rewrite ^/api/(.*)$ /api/index.php/$1 last;
}

}

nginx-errorlog:

2022/07/12 20:14:00 [error] 15702#15702: *230 rewrite or internal redirection cycle while processing "/api/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/v1/adressen", client: 10.16.1.1, server: erp.hegro-mb.local, request: "GET /api/v1/adressen HTTP/1.1", host: "erp.hegro-mb.local"

 

Vor dem Update konnten wir händisch “erp.hegro-mb.local/api/v1/adressen” in die Browserleiste eingeben, jetzt kommt aber eben der 500er-Fehler.

 

Danke vorab!

 

Grüße

Reginald Leonczuk

icon

Beste Antwort von hegro 14 July 2022, 22:40

Original anzeigen

4 Antworten

Benutzerebene 6
Abzeichen +2

Hallo @hegro,

 

Es scheint als würde ein ständiger Aufruf der index.php stattzufinden. Du könntest hier versuchen den Debug-Modus einzuschalten um spezifischere Fehlermeldungen zu kriegen. Schaue dir gerne diesen Handbucheintrag an.

 

/api/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/v1/adressen"

 

Beste Grüße,

Dennis

 

 

Benutzerebene 2
Abzeichen +1

Hallo,

Zugriff auf die API über den Browser funktioniert wieder, nachdem wir die nginx serverconfig nach https://update.xentral.biz/apidoc/docs211.html#webserver_konfiguration angepasst haben.

Nun bleibt noch das Problem, dass unser Tool, das auf die API zugreifen möchte, folgende exception bringt:

Error: self signed certificate
at TLSSocket.onConnectSecure (_tls_wrap.js:1515:34)
at TLSSocket.emit (events.js:400:28)
at TLSSocket.emit (domain.js:475:12)
at TLSSocket._finishInit (_tls_wrap.js:937:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:709:12) {
code: 'DEPTH_ZERO_SELF_SIGNED_CERT',
name: 'ResponseError',
data: undefined,
path: '/api/v1/artikel/1331?include=dateien',
status: -1,
headers: {},
res: {
status: -1,
statusCode: -1,
statusMessage: null,
headers: {},
size: 0,
aborted: false,
rt: 20,
keepAliveSocket: false,
data: undefined,
requestUrls: [
'https://erp.hegro-mb.local/api/v1/artikel/1331?include=dateien'
],
timing: null,
remoteAddress: '10.16.1.10',
remotePort: 443,
socketHandledRequests: 1,
socketHandledResponses: 0
}
}
InternalServerError: self signed certificate, GET https://erp.hegro-mb.local/api/v1/artikel/1331?include=dateien -1 (connected: true, keepalive socket: false, socketHandledRequests: 1, socketHandledResponses: 0)
headers: {}
at /home/xxxx/_dev/ptm/server/src/Routes.ts:171:19
at step (/home/xxxx/_dev/ptm/server/src/Routes.ts:33:23)
at Object.throw (/home/xxxx/_dev/ptm/server/src/Routes.ts:14:53)
at rejected (/home/xxxx/_dev/ptm/server/src/Routes.ts:6:65)
at processTicksAndRejections (internal/process/task_queues.js:95:5)

Liegt wohl am self-signed cert. Hat zufällig jemand eine Lösung? Local certs kriegt man ja nicht, oder?

Oder gibt es vllt eine Möglichkeit Xentral weiterhin ohne SSL laufen zu lassen?

Benutzerebene 2
Abzeichen +1

Problem gelöst. Wir haben uns jetzt über Let’s Encrypt mit certbot ein signiertes SSL-Zertifikat für unseren lokalen Server ausgestellt.

 

Hat jetzt vielleicht nicht unbedingt direkt mit Xentral zu tun, aber vielleicht hilft’s ja jemandem:

  1. https://certbot.eff.org/instructions?ws=nginx&os=debianbuster
  2. https://r.je/guide-lets-encrypt-certificate-for-local-development
Benutzerebene 7
Abzeichen +5

Vielen Dank @hegro für das teilen der weiteren Ressourcen und das Update! Es freut mich sehr, dass du eine Lösung gefunden hast und diese hier sogar noch geteilt hast! :) 

Du scheinst dich aber auf jeden Fall in dem Bereich gut auszukennen! Ich kann mir vorstellen, dass man von diesem Post hier noch einiges lernen kann! 

LG 

Antworten