2015-06-22 12 views
7

Mam wygenerowany CSR, który zawiera pola subject alt nazwy:Subject Alternative Name nie występuje w certyfikacie

openssl req -out mycsr.pem -new -key mykey.pem -days 365 

Kiedy sprawdzać to wygląda jak oczekiwano z nowym obecnej polu:

X509v3 Subject Alternative Name: 
    DNS: my.alt.dns 

Jednak, gdy używam tego do podpisania certyfikatu, to pole jest pomijane z jakiegoś powodu.

wygenerować go za pomocą następującego polecenia:

openssl ca -out mycert.pem -infiles mycsr.pem 

Może okazać się, że moi CA cert muszą zawierać tę samą nazwę Alt na to, aby być włączone?

+0

przepełnienie stosu jest witryną dla pytań programowania i rozwoju. To pytanie wydaje się być nie na temat, ponieważ nie chodzi o programowanie czy rozwój. Zobacz [Jakie tematy mogę tu zadać] (http://stackoverflow.com/help/on-topic) w Centrum pomocy. Być może lepszym rozwiązaniem będzie [Super użytkownik] (http://superuser.com/) lub [Unix i Linux Stack Exchange] (http://unix.stackexchange.com/). Zobacz także: [Gdzie mogę zamieszczać pytania na temat Dev Ops?] (Http://meta.stackexchange.com/q/134306). – jww

+0

Zobacz także [Jak podpisać wniosek o podpisanie certyfikatu u swojego urzędu certyfikacji?] (Http://stackoverflow.com/a/21340898/608639) – jww

+0

@jww Widzę, dlaczego mówisz, że pytanie jest poza tematem, ale wydaje się, że na przykład w przypadku większości pytań związanych z SSL na stosie przelewów, w tym na łączniku :) – jimmy

Odpowiedz

9

Można użyć:

copy_extensions = copy 

ramach sekcji CA_default w openssl.cnf.

ale tylko wtedy, gdy jesteś pewien, że można zaufać rozszerzenia w CSR, jak wskazano w tym wątku: http://openssl.6102.n7.nabble.com/subjectAltName-removed-from-CSR-when-signing-td26928.html

Zobacz także: How can I generate a self-signed certificate with SubjectAltName using OpenSSL?

+0

Doskonały, działał jak czar! Dzięki! – jimmy

+0

@jimmy - uważaj na 'copy_extensions = copy'. Musisz zweryfikować każdą prośbę o podpisanie. Zły człowiek może ustawić "CA = TRUE", a ty go wybierzesz podrzędnym CA. – jww

+0

@jww Dobra rada. Będę musiał to rozważyć. – jimmy

0

dla wszystkich, którzy doesnt chcesz edytować w całym systemie openssl.conf, istnieje natywna opcja CLI openssl do dodawania SAN do .crt z .csr. Jedyne, czego potrzebujesz, to parametry CLI openssl: -extfile i .

Here's przykład:

openssl x509 -req -days 3650 -in alice.csr -signkey aliceprivate.key -out alice.crt -extfile alice-csr.conf -extensions v3_req 

Wymaga to plik alice-csr.conf, który wygląda tak (wypełnić swoimi odpowiednimi danymi), które zostało użyte do wygenerowania .csr z poleceniem openssl req -new -key aliceprivate.key -out alice.csr -config alice-csr.conf :

[req] 
distinguished_name = req_distinguished_name 
req_extensions = v3_req 
prompt = no 

[req_distinguished_name] 
C = DE 
ST = Thuringia 
L = Erfurt 
O = Alice Corp 
OU = Team Foo 
CN = server-alice 

[v3_req] 
keyUsage = keyEncipherment, dataEncipherment 
extendedKeyUsage = serverAuth 
subjectAltName = @alt_names 
[alt_names] 
DNS.1 = server-alice 
DNS.2 = localhost 

Należy pamiętać, że opcja -extensions v3_req odpowiada sekcji w pliku alice-csr.conf, gdzie można zdefiniować [v3_req] użytkownikowi zgodnie nazwy alternatywne aka domen, które chcesz wydać swój certyfikat.

Jak zawsze doceniają w pełni zrozumiałych przykładów, gdzie można było odtwarzają każdy krok, stworzyłem przykładowym projekcie gościnnie microservices Wiosna boot: https://github.com/jonashackt/spring-boot-rest-clientcertificates-docker-compose

Powiązane problemy