
SAP ofrece a través de su Biblioteca de dispositivos en la nube la posibilidad de hacer una demostración o probar sistemas como SAP S/4HANA. Eso es genial y muy conveniente si quieres jugar en un sandbox.
Sin embargo, se entrega sin un certificado SSL de confianza, lo que puede ser un problema, especialmente si desea utilizar las API a través de herramientas que solo permiten una CA de confianza como parte de la cadena de certificados. Si te preguntas de qué estoy hablando, este es el síntoma cuando te conectas a un servidor web sin una CA de confianza en el certificado SSL.
Imagen 1: Certificado SSL no válido de un servidor CAL en el navegador Chrome
Hay varias formas de superarlo. Los primeros 2 se describen en un documento específico para los sistemas SAP CAL. Puedes encontrar el documento aquí. Recomiendo considerarlos primero.
Sin embargo, existe un tercer enfoque: puede configurar un proxy inverso entre el cliente y el sistema con un certificado no válido. A continuación, puede proteger el proxy con un certificado válido. De esa manera, no necesita tocar el sistema CAL (o cualquier otro certificado no válido que use el servidor web) y puede usar potencialmente un certificado ya existente para asegurar la conexión.
En mi caso, ya ejecuto un clúster SAP BTP Kyma que puede asegurar cualquier conexión a través de las reglas API, así que usé esto.
Imagen 2: Arquitectura de la solución con proxy inverso en Kyma
Si desea aplicar este enfoque usted mismo, puede usar este ejemplo de configuración de nginx a continuación.
server {
resolver 8.8.8.8;
listen 8080;
server_name myCalSystem.com;
location / {
proxy_pass https://$server_name:44301;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Ajustar nombre del servidor y puerto según sea necesario.
A continuación, puede crear una imagen acoplable de esta manera:
FROM nginx:stable
WORKDIR /etc/nginx/conf.d
COPY nginx.conf default.conf
EXPOSE 8080
donde nginx.conf es el archivo de configuración anterior.
Finalmente, impleméntelo en SAP BTP Kyma (o en cualquier otro lugar) así:
apiVersion: v1
kind: Namespace
metadata:
name: s4hanacal-proxy
labels:
istio-injection: enabled
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: s4hanacal-proxy-app
namespace: s4hanacal-proxy
spec:
replicas: 1
selector:
matchLabels:
app: s4hanacal-proxy-app
template:
metadata:
labels:
app: s4hanacal-proxy-app
spec:
containers:
- name: s4hanacal-proxy-container
image: <add your docker image here>
ports:
- name: http-port
containerPort: 8080
protocol: TCP
imagePullPolicy: Always
restartPolicy: Always
---
kind: Service
apiVersion: v1
metadata:
name: s4hanacal-proxy-service
namespace: s4hanacal-proxy
labels:
app: s4hanacal-proxy-app
spec:
ports:
- name: http-port
protocol: TCP
port: 8080
targetPort: http-port
selector:
app: s4hanacal-proxy-app
type: ClusterIP
---
apiVersion: gateway.kyma-project.io/v1alpha1
kind: APIRule
metadata:
name: s4hanacal-proxy-apirule
namespace: s4hanacal-proxy
labels:
app.kubernetes.io/name: s4hanacal-proxy-apirule
spec:
gateway: kyma-gateway.kyma-system.svc.cluster.local
rules:
- accessStrategies:
- handler: allow
config: {}
methods:
- PUT
- PATCH
- POST
- GET
- OPTIONS
path: /.*
service:
host: s42021
name: s4hanacal-proxy-service
port: 8080
Reemplácelo con su propio nombre de imagen acoplable.
Ahora puede acceder a S/4HANA a través de ese host de reglas de API.
Imagen 3: Acceso a S/4HANA CAL a través del host SAP BTP Kyma con SSL de confianza.
Un breve blog esta vez. Espero que sea útil para algunos de ustedes. Házmelo saber en los comentarios.
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073