Возможно, вы импортировали промежуточный сертификат CA в хранилище ключей, не связывая его с записью, в которой у вас есть сертификат клиента и его закрытый ключ.Вы должны увидеть это, используя keytool -v -list -keystore store.jks
.Если вы получаете только один сертификат для каждой записи псевдонима, они не вместе.
Вам необходимо импортировать сертификат и его цепочку вместе в псевдоним хранилища ключей, в котором есть ваш закрытый ключ.
Комучтобы узнать, какой псевдоним хранилища ключей имеет закрытый ключ, используйте keytool -list -keystore store.jks
(здесь я предполагаю тип хранилища JKS).Это скажет вам что-то вроде этого:
Your keystore contains 1 entry
myalias, Feb 15, 2012, PrivateKeyEntry,
Certificate fingerprint (MD5): xxxxxxxx
Здесь псевдоним myalias
.Если вы используете -v
в дополнение к этому, вы должны увидеть Alias Name: myalias
.
Если у вас его еще нет отдельно, экспортируйте свой сертификат клиента из хранилища ключей:
keytool -exportcert -rfc -file clientcert.pem -keystore store.jks -alias myalias
Это должно дать вам файл PEM.
Используя текстовый редактор (или cat
), подготовьте файл (назовем его bundle.pem
) с этим клиентским сертификатом и промежуточным сертификатом CA (и, возможно, корневым).Сам сертификат CA, если хотите), так что сертификат клиента находится в начале, а его сертификат эмитента чуть ниже.
Это должно выглядеть следующим образом:
-----BEGIN CERTIFICATE-----
MIICajCCAdOgAwIBAgIBAjANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJVSzEa
....
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICkjCCAfugAwIBAgIJAKm5bDEMxZd7MA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNV
....
-----END CERTIFICATE-----
Теперь импортируйте этосвязать вместе в псевдоним, где ваш закрытый ключ:
keytool -importcert -keystore store.jks -alias myalias -file bundle.pem