SSL certificate problem: unable to get local issuer certificate on Ubuntu

1. The problem I’m having:

I have a service reverse proxied with caddy on macOS and two clients trying to connect to it.

I get 3 certificates: root.crt, intermediate.crt, service.crt (which is leaf + intermediate).

On the macOS client (another device, not the server), I trusted root.crt in keychain access, then it works fine.

On the ubuntu client, I cannot connect to the service. I tried curl --cacert to pass several different certificates and always get the same error. curl -k works with no problem.

Combinations I’ve tried:

  • root
  • leaf + intermediate
  • leaf + intermediate + root
  • intermediate + root

2. Error messages and/or full log output:

curl --cacert ~/ollma.local.crt https://ollama.local:8443 -v
* Host ollama.local:8443 was resolved.
* IPv6: (none)
* IPv4: 192.168.178.48
*   Trying 192.168.178.48:8443...
* Connected to ollama.local (192.168.178.48) port 8443
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
*  CAfile: /home/anqi/ollma.local.crt
*  CApath: /etc/ssl/certs
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (OUT), TLS alert, unknown CA (560):
* SSL certificate problem: unable to get local issuer certificate
* Closing connection
curl: (60) SSL certificate problem: unable to get local issuer certificate

3. Caddy version:

v2.10.0

4. How I installed and ran Caddy:

a. System environment:

macOS

b. Command:

brew install caddy

c. Service/unit/compose file:

d. My complete Caddy config:

{
	skip_install_trust
}
https://ollama.local:8443 {
	reverse_proxy 127.0.0.1:11434
	tls internal
}

5. Links to relevant resources:

Sorry, my bad. There is a typo that caused everything wrong. Is there any place to close the issue?

1 Like

Can you share this?

echo | openssl s_client -servername ollama.local -connect 192.168.178.48:8443 2>/dev/null | sed -n '/^Certificate chain$/,/^---$/p'

I just want to see the chain your Caddy is sending

Thanks for offering the help! It’s all due to a stupid typo (how can I make it twice!).
Simply the service certificate (leaf+intermediate) works perfect now.