Не могу изменить сертификат WSO2 API-M для аутентификации связи по SSL / TLS в Docker - PullRequest
1 голос
/ 15 января 2020

Я использую WSO2 API-M в Docker версии 3.0.0-centos7 ( изображение ссылки )

Я пытаюсь изменить сертификат, предоставляемый WSO2 API-M Я следовал этому учебнику .

Сначала я сгенерировал пару ключей в существующем хранилище ключей /wso2am-3.0.0/repository/resources/security/wso2carbon.jks API-M:

keytool -genkeypair -dname "cn=wso2carbon.com" -alias wso2apim -keypass wso2carbon -keystore wso2carbon.jks -storepass wso2carbon

Отображение этого сертификата:

[wso2carbon@4ef6e35bf497 security]$ keytool -list -v -alias wso2apim -keystore wso2carbon.jks
Enter keystore password:
Alias name: wso2apim
Creation date: Jan 15, 2020
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=wso2carbon.com
Issuer: CN=wso2carbon.com
Serial number: 3ad5ca3b
Valid from: Wed Jan 15 04:13:03 UTC 2020 until: Tue Apr 14 04:13:03 UTC 2020
Certificate fingerprints:
         MD5:  99:CF:3B:0F:7D:31:9A:AB:05:E6:79:F7:B3:C7:35:21
         SHA1: D9:26:2A:18:C6:31:64:DA:8E:71:61:B7:1D:5E:7E:31:73:A0:4A:4A
         SHA256: B0:BE:74:BE:09:5C:48:79:39:B9:9A:B4:38:1F:30:36:ED:9D:5A:2E:01:DE:F5:C9:95:94:BF:33:E1:0F:39:9F
Signature algorithm name: SHA256withDSA
Subject Public Key Algorithm: 2048-bit DSA key
Version: 3

Extensions:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 01 39 89 99 D0 E3 6D E6   C8 1E CE 3B D3 33 39 EC  .9....m....;.39.
0010: 38 E9 40 01                                        8.@.
]
]


Warning:
The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore wso2carbon.jks -destkeystore wso2carbon.jks -deststoretype pkcs12".

Затем я обновил раздел SSLHostConfig в /home/wso2carbon/wso2am-3.0.0/repository/conf/tomcat/catalina-server.xml (измените CertificateKeyAlias ​​с "wso2carbon" на "wso2apim"):

<SSLHostConfig
                                           protocols="+TLSv1,+TLSv1.1,+TLSv1.2"
                                           truststorePassword="wso2carbon"
                                           truststoreType="JKS"
                                           truststoreFile="${carbon.home}/repository/resources/security/client-truststore.jks"
                                           certificateVerification="false"
                                           sslProtocol="TLS"
                                           >
                    <Certificate
                                                           certificateKeystorePassword="wso2carbon"
                                                           certificateKeystoreFile="${carbon.home}/repository/resources/security/wso2carbon.jks"
                                                           certificateKeyAlias="wso2apim"
                                                           certificateKeystoreType="JKS"
                                                           certificateKeyPassword="wso2carbon"
                                 />
                </SSLHostConfig>

Но после перезапуска контейнера API-M эта конфигурация не применяется (CertificateKeyAlias ​​сохраняет стабильность "wso2carbon"):

<SSLHostConfig
                                               protocols="+TLSv1,+TLSv1.1,+TLSv1.2"
                                               truststorePassword="wso2carbon"
                                               truststoreType="JKS"
                                               truststoreFile="${carbon.home}/repository/resources/security/client-truststore.jks"
                                               certificateVerification="false"
                                               sslProtocol="TLS"
                                               >
                        <Certificate
                                                               certificateKeystorePassword="wso2carbon"
                                                               certificateKeystoreFile="${carbon.home}/repository/resources/security/wso2carbon.jks"
                                                               certificateKeyAlias="wso2carbon"
                                                               certificateKeystoreType="JKS"
                                                               certificateKeyPassword="wso2carbon"
                                     />
                    </SSLHostConfig>

Так, пожалуйста, я ошибаюсь в любом шаге? Или есть какая-то ссылка на эту конфигурацию?

Большое спасибо.

1 Ответ

1 голос
/ 15 января 2020

WSO2 выпустил новые версии продукта в четвертом квартале 2019 года, и у них появилась новая модель конфигурации. Вместо изменения xml конфигурационных файлов в каталоге repository / conf, теперь есть один файл, который называется deploy.toml. Все настройки должны быть сделаны в этом файле.

Существуют файлы шаблонов конфигурации, которые находятся в wso2am-3.0.0 / repository / resources / conf / templates / repository / conf /. Когда вы обновляете конфигурации в deploy.toml, эти изменения применяются на основе шаблонов и будут скопированы в папку wso2am-3.0.0 / repository / conf. Вот почему ваши изменения отменяются.

Чтобы обновить псевдоним сертификата, вы можете добавить следующую конфигурацию в файл deploy.toml. Этот файл может быть найден в хранилище / Conf.

[transport.https.sslHostConfig.certificate.properties]
certificateKeyAlias = "wso2apim"

Для получения дополнительной информации, пожалуйста, обратитесь https://is.docs.wso2.com/en/next/administer/configuring-keystores-in-wso2-products/

...