6 Mayıs 2018 Pazar

X509Certificate Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.security.cert.X509Certificate;
Açıklaması söyle
There are many certificate formats that could be used by a key management system; one of the most common is the X509 format. X509 has gone through a few revisions; the version supported by the Java API is version 3. This format is an ANSI standard for certificates, and while there are PGP and other certificate formats in the word, the X509 format is dominant. This is the only format of certificate for which Java provides a standard API; if you want to support another certificate format, you must implement your own subclass of Certificate.
Açıklaması şöyle
An X.509 certificate binds a name to a public key value. The role of the certificate is to associate a public key with the identity contained in the X.509 certificate.
İlk X.509 standardı 1988 yılında yayınlandı ve bir çok RFC dokümanına yayılmış vaziyette. X.509 için 3 sürüm var. v1, v2 ve v3.

Bu sınıf CertificateFactory tarafından yaratılabilir.

Sertifika alırken şu çeşitler olabilir.
Domain Validated (DV)
Organization Validated (OV)
Extended Validation (EV)
Sertifika Zinciri
Şöyledir.
GeoTrust Global CA
   Google Internet Authority G2
      *.google.com
Issuer Name
CA adı. "Issued By" olarak bilinir. "Common Name", "Organization" olarak gösterilir.

Private Key
Sertifikayı kullanan kişinin anahtarı

Public Key
Sertifikayı kullanan kişinin anahtarı

Serial Number
CA tarafından atanan seri numara.

Giriş
Şu satırı dahil ederiz.
import java.security.cert.X509Certificate;
Subject Name
Sertifikayı kullanan kişinin adı

Subject Alternative Name
Aynı serifikanın bir çok farklı alan ismi ile kullanılabilmesini sağlar.

ThumbPrint
Sertifikanın bir parçası değildir. tbsSertificate + signatureAlgorithm (CA tarafından imzalamak için kullanılan algoritma) + signatureValue değerlerinin tek yönlü bir hash'ten geçirilerek elde edilen değerdir. ThumbPrint sertifkaları kolayca aramak için kullanılır.

constructor
Şöyle yaparız.
CertificateFactory cf = ...;
X509Certificate cert = (X509Certificate)cf.generateCertificate(inStream);
checkValidity metodu
Şöyle yaparız.
X509Certificate cert = ...;
cert.checkValidity();
getEncoded metodu
byte[] döner. Bu veri DER formatındadır. Şöyle yaparız.
byte[] derCert = cert.getEncoded();
DER formatını PEM formatına çevirmek için şöyle yaparız.
Base64 encoder = new Base64(64);
String cert_begin = "-----BEGIN CERTIFICATE-----\n";
String end_cert = "-----END CERTIFICATE-----";

byte[] derCert = cert.getEncoded();
String pemCertPre = new String(encoder.encode(derCert));
String pemCert = cert_begin + pemCertPre + end_cert;
getExtendedKeyUsage metodu
String döner.

getKeyUsage metodu
Örnek ver

getPublicKey metodu
PublicKey tipinden bir nesne döner. Şöyle yaparız.
PublicKey key = cert.getPublicKey();
PubliKey'in ne olduğunu biliyorsak cast ederek şöyle yaparız.
RSAPublicKey eServer = (RSAPublicKey) cert.getPublicKey();
getSubjectX500Principal metodu
Şöyle yaparız.
X509Certificate cert = ...;       
X500Principal s = cert.getSubjectX500Principal();


Hiç yorum yok:

Yorum Gönder