1 Haziran 2020 Pazartesi

openssl x509 aracı

Giriş
X509 sertifikaları ile çalışmak içindir. X509 aracı şu işler için kullanılır.
1. View
2. Transform
3. Combination
4. Extraction

1. View
- "-in certificate_ path" seçeneği ile okunacak sertifika dosyası belirtilir veya
- pipe ile sertifika bu komuta verilir

--dates seçeneği
Örnek
Sertifikadaki bir alanı görmek için şöyle yaparız
$ echo | 
  openssl s_client -servername {SERVER_NAME} -connect {SERVER_NAME}:{PORT} | 
  openssl x509 -noout -dates
-inform seçeneği
Normalde sertifikanın x509 formatında olması beklenir. Eğer başka bir formattaysa - örneğin DER - bunu belirtmek için kullanılır
Örnek
Şöyle yaparız. Burada -issuer ile issuer ismi, -nameopt ile name isminin gösterilmesi de belirtiliyor.
openssl x509 -in <pathToClientPEM> -inform PEM -subject -nameopt RFC2253
Çıktı olarak şunu alırız
subject= CN=myName,OU=myOrgUnit,O=myOrg,L=myLocality,ST=myState,C=myCountry
-----BEGIN CERTIFICATE-----
# ...
-----END CERTIFICATE-----
-modulus seçeneği
Sertifikanın sadece modulus kısmın gösterir.
Örnek
Şöyle yaparız
openssl x509 -noout -modulus -in myserver.crt
-issuer seçeneği
issuer ismini gösterir
Örnek
Şöyle yaparız
openssl x509 -issuer -enddate -noout 
  -in /usr/share/ca-certificates/mozilla/AddTrust_External_Root.crt
Çıktı olarak şunu alırız
issuer=C = SE, O = AddTrust AB, OU = AddTrust External TTP Network,
 CN = AddTrust External CA Root
notAfter=May 30 10:48:38 2020 GMT
-noout seçeneği
encoded çıktının gösterilmesini engeller. 
Örnek
Şöyle yaparız
openssl x509 -in myserver.crt -text -noout
-text seçeneği
Sertifikanın tam halini text olarak gösterir
Örnek
PEM kodeği ile kaydedilmiş bir dosyayı görmek için şöyle yaparız
openssl x509 -in cert.pem -noout -text
Örnek
PEM kodeği ile kaydedilmiş bir dosyayı görmek için şöyle yaparız.
openssl x509 -in localhost.pem -text -noout

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            c2:a8:fc:a1:29:02:96:dd
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: ...
        Validity
            Not Before: Apr  7 02:25:51 2018 GMT
            Not After : Mar 14 02:25:51 2118 GMT
        Subject: ...
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    ...
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                D6:DF:EB:FA:73:85:C9:22:AA:6D:79:E5:F9:16:01:2B:CC:E7:D8:D0
            X509v3 Authority Key Identifier: 
                keyid:D6:DF:EB:FA:73:85:C9:22:AA:6D:79:E5:F9:16:01:2B:CC:E7:D8:D0

            X509v3 Basic Constraints: critical
                CA:TRUE
    Signature Algorithm: sha256WithRSAEncryption
        ...
Örnek
DER kodeği ile kaydedilmiş bir dosyayı görmek için şöyle yaparız.
$ openssl x509 -inform der -in ca.skole.hr.der -noout -text
Certificate:
  Data:
    Version: 3 (0x2)
    Serial Number: 0 (0x0)
    Signature Algorithm: sha1WithRSAEncryption
    Issuer: C = HR, ST = Zagreb, L = Zagreb, O = MZOS, OU = CARNet,
            CN = CA Root certificate skole.hr
    Validity
      Not Before: Nov 15 14:17:58 2011 GMT
      Not After : Nov 12 14:17:58 2021 GMT
    Subject: C = HR, ST = Zagreb, L = Zagreb, O = MZOS, OU = CARNet,
             CN = CA Root certificate skole.hr
    Subject Public Key Info:
      Public Key Algorithm: rsaEncryption
        RSA Public-Key: (1024 bit)
        Modulus:
          ...
        Exponent: 65537 (0x10001)
    X509v3 extensions:
      X509v3 Subject Key Identifier: 
        00:e5:a0:99:17:88:9d:1c:9300:e5:a0:99:17:88:9d:1c:93
      X509v3 Authority Key Identifier: 
        keyid:00:e5:a0:99:17:88:9d:1c:93:00:e5:a0:99:17:88:9d:1c:93:00:e5:a0

            X509v3 Basic Constraints: 
                CA:TRUE
    Signature Algorithm: sha1WithRSAEncryption
         ...
2. Transform
Dijital sertifikayı bir başka kodek kullanarak çevirir.
Örnek
PEM kodeği ile kaydedilmiş dosyayı DER kodeği ile kaydetmek istersek şöyle yaparız.
openssl x509 -in cacert.pem -out cacert.cer -outform DER
3. Combination
İki dosyayı birleştirir.

4. Extraction
Birleştirilmiş dosyaları ayırır.

5. CSR imzalamak
Örnek
Önce bir Private key yaratırız. Şöyle yaparız
$ openssl genrsa -out rohan.key 2048
Daha sonra CSR yaratmak için şöyle yaparız
$ openssl req -new -key rohan.key -out rohan.csr -sub "/CN=rohan/0=marketingweb"

$ ll
... rohan.csr
... rohan.key
CSR'den sertifika üretmek için şöyle yaparız. Burada minikube'a ait certificate authorities ve private key kullanılıyor.
openssl x509 -req rohan.csr 
  -CA ../minikube/ca.crt ../minikube/ca.key 
  -CAcreateserial -out rohan.crt -days 365


Hiç yorum yok:

Yorum Gönder