ssl 从ActiveMQ的信任存储区撤消证书不起作用

0mkxixxg  于 2023-02-09  发布在  其他
关注(0)|答案(1)|浏览(165)

我在Debian Docker容器(Kubernetes)中有一个使用Java 8的Apache ActiveMQ 5.16.3示例。
它被配置为在/opt/activemq/conf/activemq.xml中使用相互SSL:

<sslContext>
            <sslContext 
                keyStore="/etc/data/my-bridge-broker.ks"
                keyStorePassword="my-pass" 
                trustStore="/etc/data/broker_to_client.ts"
                trustStorePassword="my-pass"
             />
        </sslContext>
        <!--- ... --->
        <transportConnectors>
            <transportConnector name="ssl" uri="ssl://0.0.0.0:61714?transport.enabledProtocols=TLSv1.2&amp;transport.needClientAuth=true"/>
        </transportConnectors>

mutual SSL工作正常,我可以使用ActiveMQSslConnectionFactory从示例Java客户机进行连接,ActiveMQSslConnectionFactory在信任库、密钥库和密码中提供适当的证书。
接下来,在代理运行时,我通过别名从服务器的信任存储区中删除客户端的证书:

cd /etc/data
keytool -delete -alias <client-cert-name> -keystore broker_to_client.ts -storepass my-pass

令人惊讶的是,客户端仍然能够连接。我重新启动了服务器,客户端仍然可以连接并在队列中发布消息。知道为什么吗?我以为信任存储定义了哪些客户端证书将被允许?
看看documentation,他们建议使用证书撤销列表(CRL)或在线证书状态协议(OCSP),但没有提到从信任库中删除的选项,这是否意味着ActiveMQ不使用信任库文件?

bfnvny8b

bfnvny8b1#

如果客户的证书是由可信机构颁发的,那么它是否在经纪人的信任库中并不重要。客户的证书仍然是可信的,因为它来自一个 * 可信 * 机构。经纪人的信任库只是用来包含来自不可信机构或自签名的证书。

相关问题