Hallo, meine Frontend-Applikation kann keine Verbindung zur Spring-Boot-Applikation aufbauen. Bei einem Request gibt der Browser die Fehlermeldungen "CORS error" aus.
Wenn ich denselben Request mit Postman sende, bekomme ich die Fehlermeldung "SSL Error: Unable to verify the first certificate".
Die Frontend-Applikation hat bereits ein SSL-Zertifikat (Wildcard) und läuft über die Hauptdomain. Das Backend (Spring Boot) läuft auf einem anderen Server und enthält eine Subdomain und diese besitzt kein eigenes SSL-Zertifikat.
Ich habe also versucht, das Zertifikat, das ich bereits für die Hauptdomain verwende, auch für die Subdomain zu verwenden. Durch das Zertifikat habe ich also folgende Daten:
Und diese Datei verwende ich nun in meiner application.yml-Datei von Spring Boot:
Meine Konfiguration sieht so aus:
Was mache ich falsch?
Wenn ich denselben Request mit Postman sende, bekomme ich die Fehlermeldung "SSL Error: Unable to verify the first certificate".
Die Frontend-Applikation hat bereits ein SSL-Zertifikat (Wildcard) und läuft über die Hauptdomain. Das Backend (Spring Boot) läuft auf einem anderen Server und enthält eine Subdomain und diese besitzt kein eigenes SSL-Zertifikat.
Ich habe also versucht, das Zertifikat, das ich bereits für die Hauptdomain verwende, auch für die Subdomain zu verwenden. Durch das Zertifikat habe ich also folgende Daten:
- Private key (*.key)
- Certificate (*.crt)
- CA certificate (*-ca.crt)
- privkey.pem
- chain.pem
- fullchain.pem
Bash:
openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name spring-boot -CAfile chain.pem -caname root
Und diese Datei verwende ich nun in meiner application.yml-Datei von Spring Boot:
Code:
server:
error:
include-message: on-param
port: 8080
address: 0.0.0.0
ssl:
key-store: classpath:keystore.p12
key-store-password: MyPassword
key-store-type: PKCS12
key-alias: spring-boot
Meine Konfiguration sieht so aus:
Java:
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:4200", "https://example.com", "https://api.example.com")
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
.allowedHeaders("*")
.allowCredentials(true);
}
Was mache ich falsch?