Operatör bir adres ve kullanıcı adı gönderir, istemci ise bir CA dosyası, sertifika ve anahtar ister. Bu üçünü yerel olarak oluşturmak bariz sonraki adım gibi görünür. Sonuç, yalnızca kendi makinenizin inandığı bir sertifikadır. Sunucunun güveni kontrol etmediğiniz bir CA'ya sabitlenmiştir, bu yüzden el sıkışma başlamadan biter.

Güven sunucuda yaşar, profilinizde değil

Sertifika kimlik doğrulaması bir karşılaştırmadır. İstemci bir sertifika sunar; ağ geçidi bunun yapılandırmasındaki CA'lardan biri tarafından imzalanıp imzalanmadığını denetler.

Profiliniz, istemcinin sunucuyu doğrulamak için kullanması gereken CA dosyasını belirtir. Sunucunun sizi doğrulamak için kullanması gereken CA'yı belirtemez. Yapılandırmanın o yarısı size ait değil.

Kendi yaptığınız bir sertifika teknik olarak kusursuz olsa bile bu karşılaştırmada başarısız olur. Geçerli bir imzası, konusu ve tarihleri vardır, ancak veren, ağ geçidinin hiç duymadığı bir CA'dır. Hata el sıkışma sırasında, sunucu zaten bir sertifika istedikten sonra ortaya çıkar. İstemci profilindeki hiçbir şey yanıtı değiştiremez.

Kendi imzaladığı bir sertifika neden onun yerini alamaz

Kendi imzaladığı sertifika kendi anahtarıyla imzalanır. İmza aynı dosyaya karşı doğrulanır, bu da onu kendiyle tutarlı ve başkasının ağ geçidi için kimlik bilgisi olarak işe yaramaz kılar.

Ağ geçidi sertifikanın içsel olarak tutarlı olup olmadığını sormaz. Güvenilir bir verenin onu imzalayıp imzalamadığını sorar.

Bu yüzden hata mesajları kafa karıştırıcıdır. İstemci sunucu sorunu gibi görünen bir doğrulama hatası bildirebilir, sunucu ise bilinmeyen bir veren kaydeder. İkisi de aynı uyumsuzluğu karşıt uçlardan tanımlar.

CSR yolu özel anahtarınızı korur

İşin çoğunu hâlâ yerel olarak yapabilirsiniz. Bir anahtar çifti oluşturun, genel yarısının etrafında bir sertifika imzalama isteği kurun ve bu isteği operatöre gönderin. Makinenizden yalnızca istek çıkar. Özel yarısı, onu oluşturduğunuz yerde kalır.

openssl req -new -newkey rsa:3072 -nodes -keyout client.key -out client.csr -subj "/CN=laptop-01"

Operatör isteği kendi CA'sıyla imzalar ve bir sertifika döndürür. Özel anahtarınız hiç yolculuk etmedi ve sonuç, ağ geçidinin güvendiği çapaya zincirlenir.

Yönetilen hizmetler genellikle CSR'yi atlar ve paketin tamamını verir. Aynı sağlayıcı tüneli zaten sonlandırıyor ve CA'yı elinde tutuyorsa bu makul bir takastır. Anahtarın muhafazası onu tutmakla iyileşmez, çünkü sağlayıcı her an yenisini basabilir.

Paketler içe aktarılır, kurulmaz

Güvenlik gibi görünen adlara sahip sağlayıcı paketleri genellikle OpenVPN profilleridir. Yapılandırma ve bazen sertifikalar içerirler ve hiçbir şey kurmazlar. Dosyayı protokolü konuşan bir istemciye aktarın, bağlantı yapılandırılmış olur.

İşlem kuralı içerikten doğar. Profil özel bir anahtar içeriyorsa bu bir kimlik bilgisidir ve bir parola kadar özen ister: e-posta yok, depo yok, paylaşılan indirme klasörü yok. Operatör ca.crt, client.crt ve client.key dosyalarını ayrı ayrı verdiğinde, bunları kısıtlayıcı izinlerle bir arada saklayın ve profili bunlara yönlendirin.

Operatörün atlamış olabileceği denetimleri ekleyin

Yönlendiricinin oluşturduğu profilde bazen eş doğrulaması yoktur. remote-cert-tls server eş sertifikasının sunucu kimlik doğrulama amacını taşımasını gerektirir, böylece bir istemci sertifikası sunucu olarak yeniden oynatılamaz. O tek satır, açık bir gerekçesi olan küçük bir değişikliktir.

verify-x509-name operatör beklenen konuyu veya SAN'ı adlandırabildiğinde daha ileri gider. İkisi de profile küçük eklemelerdir ve ikisi de savunulabilir. İçe aktarmadan önce aldığınızı inceleyin.

openssl x509 -in client.crt -noout -issuer -subject -dates
openssl verify -CAfile ca.crt client.crt

Doğrulama ayarları kırık bir zincirin onarımı değildir. Veren yanlışsa yanıt, doğru CA'dan gelen bir sertifikadır, doğrulamayı kapatan bir bayrak değil. Doğrulamayı kapatmak, kimlik doğrulama hatasını fark edilmeyen bir hataya dönüştürür.

Tek bir paket isteyin: yetkinin sertifikası PEM olarak, o yetki tarafından imzalanmış bir istemci sertifikası, kendi oluşturduğunuz veya güvendiğiniz bir kanaldan gelen anahtar ve sertifikanın sunması gereken tam sunucu adı. Aynı mesajda son kullanma tarihini de not edin, çünkü süresi geçmiş bir sertifika aylar sonra ağ arızası gibi görünür.

İlgili makaleler