I/7 tomcat6 bağlanırken kullanıcıların kimliğini doğrulamak için SSL istemci sertifikalarını kullanmak istiyorum. Ben erkek kedi doğru yapılandırılmış var ettik ve truststore içinde sertifikası ile oturum sertifikalar Ben erkek kedi IE ve Firefox başarıyla kimliklerini doğrulamaktadır verdi.Zincirli İstemci Sertifikaları
isterim ayrıca müşterilere kendi kullanıcılarını yönetme yeteneği vermek istiyorum çünkü, zincir istemci sertifikaları nasıl. Bunu, bir müşteriye, ek kullanıcı sertifikalarını imzalamak için kullanacakları ikincil yönetim CA sertifikası vererek başarabilirim. Kimlik doğrulaması yapmak için yönetim CA'sı (kök sertifikam tarafından imzalanmış) ile zincirlenmiş kullanıcı sertifikasını göndermek için kullanıcının tarayıcısına ihtiyacım var.
Ben openssl kullanıyorum ve bir kök CA ve bir ara CA oluşturduk ve bir yaprak sertifikasını imzalamak için ara CA kullandık. Ben PKCS12 ve PEM her üç sertifikaları dönüştürülür ve tomcat için truststore içine kök sertifika almak için keytool kullandık. openssl –verify, pkcs12'nin ara sertifikayla (ve köke karşı ara doğrulamaya karşı) doğrulanmasını sağlayacaktır. Ancak, kök sertifikasına (pkcs12) karşı doğrulamak için yaprak sertifikasını (pkcs12) alamıyorum. Ayrıca yaprak sertifikasını kullanarak kimlik doğrulaması yapmak için IE veya Firefox alamıyorum. IE sertifikası için beni istemi, ancak (tomcat en günlüğüne bağlantısı veya başarısızlık söz edilmez) kimlik doğrulaması başarısız olur. Firefox yaprak sertifikası istemiyor; Sadece doğrulamak için başarısız olur.
root.bat:
set name=Root
set keyPassword=dummypassword
set trustPassword=dummypassword
openssl genrsa -des3 -passout pass:%keyPassword% -out %name%.key 4096
openssl req -new -key %name%.key -passin pass:%keyPassword% -out %name%.csr -subj "/C=US/ST=Chaos/L=TimeNSpace/O=None/CN=%name%"
openssl x509 -req -days 3650 -in %name%.csr -signkey %name%.key -passin pass:%keyPassword% -extfile GenerateCertificate.cfg -extensions v3_ca -out %name%.crt
openssl pkcs12 -export -in %name%.crt -inkey %name%.key -passin pass:%keyPassword% -passout pass:%keyPassword% -out %name%.pkcs12
keytool -noprompt -import -file %name%.crt -alias %name% -keystore %name%.truststore -deststorepass %trustPassword%
keytool -list -v -keystore %name%.truststore -storepass %trustPassword% > %name%.truststore.dump.txt
keytool -exportcert -alias %name% -keystore %name%.truststore -storetype jks -storepass %trustPassword% -rfc -file %name%.truststore.pem
openssl pkcs12 -in %name%.pkcs12 -out %name%.pem -nodes -passin pass:%keyPassword%
İşte
openssl verify -CAfile ..\root\Root.pem Leaf.pem
Üç sertifika nasıl oluşturulur kullanıyorum komut şunlardır: Burada
Ben OpenSSL'yi kökü karşı yaprak doğrulamaya çalıştığınızda nasıl
intermediate.bat:
set name=Intermediate
set password=dummypassword
set caDir=../root
set caName=Root
set caPassword=dummypassword
openssl genrsa -des3 -passout pass:%password% -out %name%.key 2048
openssl req -new -key %name%.key -passin pass:%password% -out %name%.csr -subj "/C=US/ST=Chaos/L=TimeNSpace/O=None/CN=%name%"
openssl x509 -req -days 3650 -in %name%.csr -CA %caDir%/%caName%.crt -CAkey %caDir%/%caName%.key -passin pass:%caPassword% -set_serial 1 -extfile GenerateCertificate.cfg -extensions v3_ca -out %name%.crt
openssl pkcs12 -export -in %name%.crt -inkey %name%.key -passin pass:%password% -passout pass:%password% -chain -CAfile %caDir%/%caName%.crt -out %name%.pkcs12
openssl pkcs12 -in %name%.pkcs12 -out %name%.pem -nodes -passin pass:%password%
yaprak .bat:
set name=Leaf
set password=dummypassword
set caDir=../intermediate
set caName=Intermediate
set caPassword=dummypassword
openssl genrsa -des3 -passout pass:%password% -out %name%.key 2048
openssl req -new -key %name%.key -passin pass:%password% -out %name%.csr -subj "/C=US/ST=Chaos/L=TimeNSpace/O=None/CN=%name%"
openssl x509 -req -days 3650 -in %name%.csr -CA %caDir%/%caName%.crt -CAkey %caDir%/%caName%.key -passin pass:%caPassword% -set_serial 1 -out %name%.crt
openssl pkcs12 -export -in %name%.crt -inkey %name%.key -passin pass:%password% -passout pass:%password% -chain -CAfile %caDir%/%caName%.pem -out %name%.pkcs12
openssl pkcs12 -in %name%.pkcs12 -out %name%.pem -nodes -passin pass:%password%
GenerateCertificate.cfg:
[ v3_ca ]
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer
basicConstraints = CA:true,pathlen:3