2012-09-27 15 views
5

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 

cevap

5

sorun kök ve ara sertifikaları CA sertifikaları olarak oluşturulmamış olmasıydı. CA sertifikaları olarak oluşturmak için

, onların yaratılış komut için

-extfile GenerateCertificate.cfg -extensions v3_ca 

eklendi ve GenerateCertificate.cfg (sertifika oluşturma toplu dosya içermesinden) benim çalışma dizinlere dosya eklendi.

Bu değişiklikleri yansıtacak şekilde özgün gönderiyi düzenledim.

İlgili konular