не могу получить сертификат папы ssl для работы с весенней загрузкой - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть сертификат с сгенерированным CSR в go daddy.

Я попытался сгенерировать свой собственный CSR, чтобы получить сертификат для моего домена.Я следовал их руководству, чтобы создать магазин с CSR:

keytool -genkey -alias codesigncert -keypass -keyalg RSA -keysize 2048 -dname "CN=displayname,O=companyname,C=US,ST=state,L=city" -keystore codesignstore -storepass

Но крестник отклонил сгенерированный CSR, поэтому я использовал тот, который они генерируют.

После этого я использовал эту командуиз учебника на thomasvitale.com.:

keytool -import -alias <my alias> -file <downloadedcertificate file>.crt -keystore keystore.p12 -storepass password

Сгенерированное хранилище ключей .p12 не загрузится, потому что Spring сказал:

DerInputStream.getLength(): lengthTag=109, too big.

Чтение LOT начто я узнал, что это был способ генерации хранилища ключей и версия чего-либо.Из-за этого мне пришлось сгенерировать другое хранилище ключей.

Чтобы сгенерировать текущее проблемное хранилище ключей, я попробовал следующие инструкции medium.com:

Использовал это для генерации хранилища ключей:

keytool -genkey -alias <alias> -keyalg RSA -keystore <keystore.jks> -keysize 2048

Используется для создания CSR:

keytool -certreq -alias <alias> -keystore <keystore.jks> -file <domain>.csr

Отправляет CSR для генерации ssl-сертификатов, загружая их с помощью опции tomcat.Затем импортировал сертификаты:

промежуточный сертификат: keytool -import -trustcacerts -alias <alias> -file gd_bundle-g2-g1.crt -keystore <keystore.jks>

корневой сертификат: keytool -import -trustcacerts -alias <alias> -file e2e56xxxxf40c7.crt -keystore <keystore.jks>

Затем я создал хранилище ключей pcks следующим образом:

keytool -importkeystore -srckeystore <keystore.jks> -destkeystore <keystore.p12> -srcstoretype JKS -deststoretype PKCS12 -deststorepass <password> -srcalias <src alias> -destalias <dest alias>

После этого моя весенняя конфигурация загрузки для установки сертификата: После комментариев по этому вопросу я перешел на использование JKS и удалил шифры.

server:
    port: 8443
    ssl:
        enabled: true
        key-store-type: JKS
        key-store: classpath:asgard_keystore.jks
        key-store-password: generated
        key-alias: asgard

После установки всех этих файлов на сервер p12, сервервсе началось нормально, но любые запросы к серверу приводили бы к: err_ssl_version_or_cipher_mismatch или SSL_ERROR_NO_CYPHER_OVERLAP

Захват этого в wireshark только что сказал Alert 21 с использованием TLS 1.2 Handshake Failure (40).

I 'м, используя undertow в качестве сервера.Я не помню, использовал ли я домен в поле имени и фамилии CSR.

Расшифровывая CSR с помощью инструмента digicert, я получил:

Common name
 <my domain>

Organization
 <my org>

Organizational unit
 <my city>

City/locality
 <my city>

State/province
 <my estate>

Country
 <my country>

Signature algorithm
 SHA256

Key algorithm
 RSA

Key size
 2048

Кажется, я делаювсе точно так же, как каждый учебник, и каждый раз, когда что-то не получается: (

Согласно комментарию к вопросу, keytool -list вызывает:

keytool -list для .jks:

Keystore type: jks                                                                                                                                              
Keystore provider: SUN                                                                                                                                          

Your keystore contains 3 entries                                                                                                                                

Alias name: asgard                                                                                                                                              
Creation date: Dec 7, 2018                                                                                                                                      
Entry type: trustedCertEntry                                                                                                                                    

Owner: CN=Go Daddy Secure Certificate Authority - G2, OU=http://certs.godaddy.com/repository/, O="GoDaddy.com, Inc.", L=Scottsdale, ST=Arizona, C=US            
Issuer: CN=Go Daddy Root Certificate Authority - G2, O="GoDaddy.com, Inc.", L=Scottsdale, ST=Arizona, C=US                                                      
Serial number: 7                                                                                                                                                
Valid from: Tue May 03 07:00:00 UTC 2011 until: Sat May 03 07:00:00 UTC 2031                                                                                    
Certificate fingerprints:                                                                                                                                       
         MD5:  96<removed>:40                                                                                                  
         SHA1: 2<removed>B8                                                                                      
         SHA256: 97:3A<removed>E9:76:FF:6A:62:0B:67:12:E3:38:32:04:1A:A6                                                
Signature algorithm name: SHA256withRSA                                                                                                                         
Subject Public Key Algorithm: 2048-bit RSA key                                                                                                                  
< not relevant >                                                                                                                                                    
]                                                                                                                                                               

*******************************************                                                                                                                     
*******************************************                                                                                                                     

Alias name: intermediate                                                                                                                                        
Creation date: Dec 14, 2018                                                                                                                                     
Entry type: trustedCertEntry                                                                                                                                    

Owner: CN=<removed>, OU=Domain Control Validated                                                                                                        
Issuer: CN=Go Daddy Secure Certificate Authority - G2, OU=http://certs.godaddy.com/repository/, O="GoDaddy.com, Inc.", L=Scottsdale, ST=Arizona, C=US           
Serial number: 5c<removed>                                                                                                                                
Valid from: Fri Dec 07 20:25:19 UTC 2018 until: Mon Dec 07 18:10:35 UTC 2020                                                                                    
Certificate fingerprints:                                                                                                                                       
         MD5:  31<removed>74:77                                                                                                  
         SHA1: 8D:<removed>:C0:F5:AE:0B                                                                                      
         SHA256: 77:14:9<removed>8B:1D:67:46:1A:67:A2:72:2F:2F:9E:F2:16                                                
Signature algorithm name: SHA256withRSA                                                                                                                         
Subject Public Key Algorithm: 2048-bit RSA key                                                                                                                  
< not relevant >                                                                                                                                                               
]                                                                                                                                                               



*******************************************                                                                                                                     
*******************************************                                                                                                                     


Alias name: server                                                                                                                                              
Creation date: Dec 7, 2018                                                                                                                                      
Entry type: PrivateKeyEntry                                                                                                                                     
Certificate chain length: 1                                                                                                                                     
Certificate[1]:                                                                                                                                                 
Owner: CN=<removed>, OU=São Paulo, O=Ideas Farm, L=São Paulo, ST=SP, C=BR                                                                               
Issuer: CN=a<removed>, OU=São Paulo, O=Ideas Farm, L=São Paulo, ST=SP, C=BR                                                                              
< not relevant >                                                                                             
]                                                                                                                                                               
]                                                                                                                                                               

*******************************************                                                                                                                     
*******************************************                                                                                                               

полный отчет: отчет о вставке

Я удалил части ответа, которые я нахожу неактуальными. Мне показалось странным, что файл pkcs (.p12) сообщилкак тип jks.

Кроме того, файлы, которые я получил от центра сертификации:

5<removedhex>6b1b.crt
gd_bundle-g2-g1.crt
gdig2.crt.pem

gd_bundle содержит 3 сертификата -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- три раза. Два других простоодин.

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Я решил проблему.

После того, как я поигрался с каждым сертификатом, я обнаружил, что GoDaddy выдает ответ сертификата и 2 равных промежуточных сертификата.Оба входят в пакет загрузки, и там нет корневого сертификата.

В результате у меня был самозаверяющий фиктивный ключ, как указано в комментариях, и я не знал, что мне нужно импортироватьсертификат сервера (ответ сертификата) с тем же псевдонимом, что и мой закрытый ключ.Я импортировал с другим псевдонимом, думая, что это что-то еще.Мой закрытый ключ останется самозаверяющим и не будет проверен.

Ошибки, которые я получал о шифрах, были связаны с тем, что я говорил Spring использовать сертификат, который не был закрытым ключом.Они не поддерживают декодирование рукопожатия.

Другая проблема, с которой я столкнулся, заключается в том, что godaddy не предоставляет корневой сертификат в пакете, который вы загружаете.Я пытался добавить два промежуточных продукта, в то время как root был доступен в репозитории, который у них был.После загрузки и импорта правильного корневого сертификата я смог импортировать сертификат проверки секретного ключа в тот же псевдоним, что и мой фиктивный ключ.

Таким образом, решение было просто начать с хранилища ключей JKS, использованного для созданияCSR (тот, который содержит только сгенерированный мной закрытый ключ).Затем добавьте к нему корневой и промежуточный сертификаты и, наконец, добавьте сертификат сервера (сертификат с шестнадцатеричным именем) с тем же псевдонимом, что и у закрытого ключа.

0 голосов
/ 14 декабря 2018

Вы сказали java использовать сертификат с псевдонимом asgard.В вашем дампе .p12 я вижу, что «asgard» на самом деле является CA.Посмотрите на владельца:

Alias name: asgard
Creation date: Dec 14, 2018
Entry type: trustedCertEntry

Owner: CN=Go Daddy Secure Certificate Authority - G2, OU=http://certs.godaddy.com/repository/, O="GoDaddy.com, Inc.", L=Scottsdale, ST=Arizona, C=US
Issuer: CN=Go Daddy Root Certificate Authority - G2, O="GoDaddy.com, Inc.", L=Scottsdale, ST=Arizona, C=US

Я предполагаю, что вы на самом деле хотите сказать Spring загрузить ваш файл .jks и указать псевдоним codesigncert.

Также удалите вашСвойства ciphers и enabled-protocols, если у вас нет веских причин переопределять пружину, установленную по умолчанию.Spring обновляет свои настройки по умолчанию с помощью последних бюллетеней по безопасности.

Наконец, измените пароль хранилища ключей, потому что теперь весь интернет знает, что это такое:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...