Skip to content

Instantly share code, notes, and snippets.

@htekgulds
Last active October 6, 2019 16:07
Show Gist options
  • Save htekgulds/5b8247f6550902fc9d4b04c18e097ca1 to your computer and use it in GitHub Desktop.
Save htekgulds/5b8247f6550902fc9d4b04c18e097ca1 to your computer and use it in GitHub Desktop.
Geliştrime ortamı için Root CA ve SSL dosyaları nasıl oluşturulur

Ö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:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment