SSL Sertifikası

gRPC TLS Yapılandırması

gRPC bağlantısında x509 hatası mı var? SAN, CA güveni ve ALPN h2 kontrolü; Go, grpcurl ve Nginx grpc_pass örnekleriyle çözüm.

gRPC, HTTP/2 üzerinde çalışır ve üretimde neredeyse her zaman TLS ile korunur. Tipik hatalar transport: authentication handshake failed: x509: certificate signed by unknown authority ve x509: certificate is valid for ..., not ... biçimindedir; ilki zincir, ikincisi ad uyuşmazlığı sorunudur.

Sunucu ve istemci gereksinimleri

  • Sunucu sertifikasının SAN alanı, istemcinin bağlandığı adı içermeli (modern Go sürümleri yalnızca SAN'a bakar, CN'yi yok sayar).
  • İstemci, sertifikayı imzalayan CA'ya güvenmeli (özel CA ise CA dosyasını tanıtmalı).
  • HTTP/2 için ALPN h2 anlaşılmalı.

Go örneği

// Sunucu
creds, err := credentials.NewServerTLSFromFile("server.crt", "server.key")
s := grpc.NewServer(grpc.Creds(creds))

// İstemci
creds, err := credentials.NewClientTLSFromFile("ca.crt", "servis.ornek.com")
conn, err := grpc.Dial("servis.ornek.com:443", grpc.WithTransportCredentials(creds))

İkinci parametre, doğrulanan sunucu adıdır (server name override); SAN ile eşleşmelidir.

Komut satırından test

grpcurl -cacert ca.crt servis.ornek.com:443 list
grpcurl -cacert ca.crt -cert istemci.crt -key istemci.key servis.ornek.com:443 list
openssl s_client -alpn h2 -connect servis.ornek.com:443 -servername servis.ornek.com

İkinci komut karşılıklı TLS (mTLS) için istemci sertifikası kullanır.

Nginx ile gRPC ters vekil

server {
    listen 443 ssl;
    http2 on;
    ssl_certificate     /etc/ssl/servis-fullchain.pem;
    ssl_certificate_key /etc/ssl/servis.key;

    location / {
        grpc_pass grpcs://arka-uc:50051;
        grpc_ssl_trusted_certificate /etc/ssl/ic-ca.crt;
        grpc_ssl_verify on;
    }
}

Arka uç düz bağlantıysa grpc:// kullanılır.

Sık hatalar

  • IP ile bağlanıp SAN'da yalnızca DNS adı olması.
  • Ara sertifikanın sunucuda eksik olması.
  • Yük dengeleyicinin HTTP/2'yi uçtan uca iletmemesi.

Herkese açık servisler için SSL sertifikaları ve kontrol için SSL Checker kullanabilirsiniz; çok alt alan adlı mimarilerde Wildcard SSL da düşünülebilir.

Bu makale faydalı oldu mu?

Bu konuyla ilgili SSL sertifikaları

Makalede geçen sertifika türlerine uygun ürünler.

Makale Ara

SSL Kurulum ve Yapılandırma

Yardıma mı İhtiyacınız Var?

Aradığınızı bulamadıysanız destek ekibimiz size yardımcı olabilir.

Destek Talebi Aç