Önce root ca key oluşturulur
openssl genrsa -des3 -out htds-root-ca.key 2048
Bu komut key dosyası için bir şifre isteyecek. Bu şifreyi, bu key ile oluşturacağınız tüm sertifikalarda kullanacaksınız.
İkinci olarak root ca sertifikası oluşturulur
openssl req -x509 -new -nodes -key htds-root-ca.key -sha256 -days 1825 -out htds-root-ca.pem
Bu komut sizden bir sürü bilgi isteyecek. Bunlardan sadece Common Name (CN) kısmı önemli. O da ca sertifikalarınız arasında bunu adından tanıyabilmeniz için.
root ca sertifikamızı chrome, firefox, bilgisayarın sertifika havuzu gibi yerlere Authorities kısmına eklememiz gerekiyor.
Linux için adımlar şu şekilde:
/usr/share/ca-certificates/extras
diye bir dizin oluşturun- .pem uzantılı dosyanızın uzantısını .crt olarak deiştirip bu dosyayı oluşturduğunuz dizine kopyalayın
sudo dpkg-reconfigure ca-certificates
komutunu çalıştırın- açılan pencerede önce enter'a basıp sonra çıkan listede eklendiğiniz dosyayı space tuşu ile seçili hale getirin ve tekrar enter'a basın
Artık bu sertifika ile ürettiğimiz diğer sertifikaları bilgisayarımız otomatik olarak tanıyacak
Sıra uygulamamız için bir sertifika üretmede.
Bunun için yukarıdaki aşamaların benzerini uygulayacağız. Birinci olarak aşağıdaki komutla key dosyasını oluşturuyoruz
openssl genrsa -out registry.swarm.local.key 2048
İkinci olarak crs dosyasını oluşturuyoruz
openssl req -new -key registry.swarm.local.key -out registry.swarm.local.csr
Üçüncü olarak subjectAltName'leri belirlemek için .ext uzantılı bir config dosyası hazırlıyoruz. İçeri aşağıadki gibi olacak
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = registry.swarm.local
DNS.2 = registry.swarm.local.192.168.1.100.xip.io
Son olarak da bu config dosyasını, csr dosyasını ve root ca dosyalarımızı kullanarak sertifikamızı üretiyoruz.
openssl x509 -req -in registry.swarm.local.csr -CA htds-root-ca.pem -CAkey htds-root-ca.key -CAcreateserial -out registry.swarm.local.crt -days 1825 -sha256 -extfile registry.swarm.local.ext
Hepsi bu kadar! Bu sertifikayı artık bilgisayarınıza tanıtmanıza gerek yok.
Kaynaklar: