0

wildfly-10 上的 myapp 使用 keycloak-6 进行身份验证 2 年没有任何问题。SSL 证书已过期,我已重新安装新的 SSL 并更新到 wildfly-21 和 keycloak-12。我收到拒绝连接错误。

以下是不同步骤的列表:

我为 keycloak-12 安装了 Sectigo Essential Wildcard SSL,如下所示:

  1. 我从 mydomain.net.csr 颁发了证书
  2. 我收到了 3 个文件:_mydomain_net.crt、AAA_Certificate_Services.crt 和 USERTrust_RSA_Certification_Authority.crt
  3. openssl pkcs12 -export -in _mydomain.crt -inkey mydomain.net.key -out mydomain.net.pl12 -name default -CAfile AAA_Certificate_Services.crt -caname root
  4. keytool -importkeystore -destkeystore mydomain.net.jks -srckeystore mydomain.net.pl12 -srcstoretype PKCS12 -alias default
  5. cp mydomain.net.jks keycloak-12.0.4/standalone/configuration/

我将 keycloak Standalone.xml 配置如下:

<security-realm name="UndertowRealm">
   <server-identities>
       <ssl>
            <keystore path="mydomain.net.jks" relative-to="jboss.server.config.dir" keystore-password="mypass" />
       </ssl>
   </server-identities>
...
</security-realm>
   <https-listener name="https" socket-binding="https" security-realm="UndertowRealm" enable-http2="true"/>
                <host name="default-host" alias="localhost">
                    <location name="/" handler="welcome-content"/>
                    <http-invoker security-realm="UndertowRealm"/>
                </host>
...
<spi name="truststore">
    <provider name="file" enabled="true">
        <properties>
            <property name="file" value="${jboss.server.config.dir}/mydomain.net.jks"/>
            <property name="password" value="mypass"/>
            <property name="hostname-verification-policy" value="WILDCARD"/>
            <property name="disabled" value="false"/>
        </properties>
    </provider>
</spi>    

我将证书添加到 jvm

cp _mydomain_net.cert to /usr/lib/jvm/java-8-oracle/jre/lib/security/
keytool -import -alias ca -file _mydomain.net.crt -keystore cacerts -storepass mypass

在这个级别,我可以毫无问题地通过 https 访问我的 keycloak 安装。

我将 wildfly-21.0.2 配置如下:

cp mydomain.net.jks standalone/configuration/mydomain.net.jks 

我在 wildfly-21.0.2 服务器的 jvm 中添加了一个证书

cp _mydomain_net.cert to /usr/lib/jvm/java-8-oracle/jre/lib/security/
keytool -import -alias ca -file _mydomain_net.crt -keystore cacerts -storepass mypass

我的 web.xml

   <security-constraint>
      <web-resource-collection>
         <url-pattern>/home/*</url-pattern>
      </web-resource-collection>
      <auth-constraint>
         <role-name>uma_authorization</role-name>
      </auth-constraint>
   </security-constraint>

   <login-config>
      <auth-method>KEYCLOAK</auth-method>
   </login-config>

   <security-role>
      <role-name>uma_authorization</role-name>
   </security-role>

我无法将 myapp 从 wildfly-21 连接到 keycloak-12,错误:

[org.keycloak.adapters.KeycloakDeployment] (default task-1) Failed to load URLs from https://iam.mykeycloak.net/auth/realms/demo/.well-known/openid-configuration: java.net.ConnectException: Connection refused (Connection refused)

我在这个问题上工作了三天,没有任何成功,我不知道如何解决这个问题。提前感谢您的任何想法/建议。

4

1 回答 1

0

https 端口丢失。将https://iam.mykeycloak.net更改为https://iam.mykeycloak.net:8543

于 2021-03-15T16:36:10.340 回答