On Junos OS Evolved 24.4R2-S3.7-EVO, enabling gRPC SSL request-response under system services extension-service can cause nginx to fail after commit.
system services extension-service
After the configuration is committed, the router raises the alarm:
Application nginx fail on node Re0
This issue is deterministic. When request-response grpc ssl is enabled, nginx fails to start. When the service is disabled, the alarm clears.
request-response grpc ssl
To reproduce the issue:
root_ca.crt
intermediate_ca.crt
/var/tmp/
request security pki ca-certificate load ca-profile BRD_CA filename "/var/tmp/root_ca.crt" request security pki ca-certificate load ca-profile BRD_CA_INT filename "/var/tmp/intermediate_ca.crt"
set security pki ca-profile BRD_CA ca-identity "Test Root CA" set security pki ca-profile BRD_CA revocation-check disable set security pki ca-profile BRD_CA_INT ca-identity "Test Intermediate CA" set security pki ca-profile BRD_CA_INT revocation-check disable set system services extension-service request-response grpc ssl address 192.168.0.8 set system services extension-service request-response grpc ssl port 9339 set system services extension-service request-response grpc ssl local-certificate grpc-ecdsa-cert-01 set system services extension-service request-response grpc max-connections 30 set security certificates local grpc-ecdsa-cert-01 load-key-file /var/tmp/router-01.pem
The configuration passes commit check successfully. However, after commit, nginx fails.
The observed behavior is that nginx enters a restart loop and does not start successfully. No actual TCP listener is created for the configured gRPC SSL service, even though operational commands may still show the request-response server as Up.
The relevant nginx error is:
cannot load certificate "/var/db/nginx-certs/nginx_chain.cert": BIO_new_file() failed (SSL: error:80000002:system library::No such file or directory:calling fopen(/var/db/nginx-certs/nginx_chain.cert, r) error:10000080:BIO routines::no such file)
During troubleshooting, it was confirmed that /etc/nginx.conf only includes /var/etc/nginx/*. The generated file /var/etc/nginx/nginx.conf contains the following references:
/etc/nginx.conf
/var/etc/nginx/*
/var/etc/nginx/nginx.conf
ssl_certificate /var/db/nginx-certs/nginx_chain.cert; ssl_certificate_key /var/db/nginx-certs/nginx_chain.cert;
However, on the affected router, /var/db/nginx-certs/nginx_chain.cert does not exist. Only /var/db/nginx-certs/nginx.cert is present.
/var/db/nginx-certs/nginx_chain.cert
/var/db/nginx-certs/nginx.cert
This indicates a path or reference issue in the nginx configuration generated for extension-service request-response grpc ssl. The generated nginx configuration points to nginx_chain.cert, but that file is not created or made available on the affected system.
extension-service request-response grpc ssl
nginx_chain.cert
It was also confirmed that the issue is not related to the configured IP address or TCP port. Different values were tested and the behavior remained the same. The issue is specifically tied to enabling request-response grpc ssl and the way the nginx runtime configuration is generated.
Based on these findings, this is a defect in certificate path handling or SSL artifact generation for system services extension-service request-response grpc ssl on Junos OS Evolved 24.4R2-S3.7-EVO. The service causes nginx to load a non-existent file, /var/db/nginx-certs/nginx_chain.cert, which results in nginx startup failure and the alarm:
system services extension-service request-response grpc ssl
As a temporary workaround, create a symbolic link so the path expected by nginx resolves to the existing file:
cd /var/db/nginx-certs ln -s nginx.cert nginx_chain.cert systemctl restart nginx
This is only a temporary workaround and not a permanent fix. The underlying issue is that the system-generated nginx configuration references a certificate file that does not exist.