Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

不使用证书的情况下调用ssl的url,服务无法连接 #382

Open
shuaiqiha opened this issue May 8, 2024 · 0 comments
Open

不使用证书的情况下调用ssl的url,服务无法连接 #382

shuaiqiha opened this issue May 8, 2024 · 0 comments

Comments

@shuaiqiha
Copy link

以下是node代码,在java中是可以通过```
PulsarClient client = PulsarClient.builder().serviceUrl(brokerServerUrl).allowTlsInsecureConnection(true)
.authentication(new IoTAuthentication(iotAccessId, iotSecretKey)).build();
Consumer consumer = client.newConsumer(Schema.STRING).topic(String.format("%s/iot/event", iotAccessId))
.subscriptionName(subscriptionName).subscriptionType(SubscriptionType.Failover)
.autoUpdatePartitions(Boolean.FALSE).subscribe();

这种方式来跳过ssl证书的,在下面node中我也加入了tlsAllowInsecureConnection: true,
            tlsValidateHostname: false,这两个参数但是无法连接到服务



`const Pulsar = require('pulsar-client');
const crypto = require('crypto');
const iotAccessId = "yGmZyJnpqPPIGwzj1564";
const iotSecretKey="b9fab8817fa64f4ab6424d6a7035d2e7";
const brokerSSLServerUrl = "pulsar+ssl://iot-north-mq.heclouds.com:6651/";
const iotSubscriptionName="yGmZyJnpqPPIGwzj1564-sub";

const token = JSON.stringify({
    tenant: iotAccessId,
    password: sha256(iotAccessId + sha256(iotSecretKey)).substring(4, 20)
});

(async () => {
    try {
        console.log("token:", token);
        // Create a client
        let authenticationToken = new Pulsar.AuthenticationToken({
            token: token
        });

        Pulsar.Client.setLogHandler((level, file, line, message) => {
            console.log('[%s][%s:%d] %s', Pulsar.LogLevel.toString(level), file, line, message);
        });

        const client = new Pulsar.Client({
            serviceUrl: brokerSSLServerUrl,
            authentication: authenticationToken,
            tlsAllowInsecureConnection: true,
            tlsValidateHostname: false,
        });


        console.log("client:", client);

        // Create a consumer
        const consumer = await client.subscribe({
            topic: `${iotAccessId}/iot/event`,
            // topic: 'persistent://yGmZyJnpqPPIGwzj1564/iot/event-partition-0',
            subscription: iotSubscriptionName,
            subscriptionType: 'Failover'
        });

        console.log("consumer:", consumer);

        // Receive the message
        const msg = await consumer.receive();
        console.log(msg.getData().toString());
        consumer.acknowledge(msg);

        await consumer.close();
        await client.close();
    } catch (error) {
        console.error("An error occurred:", error.message);
        console.error(error.stack);
    }
})();

function sha256(data) {
    return crypto.createHash('sha256').update(data, 'utf8').digest('hex');
}`


最下面是报错信息```
[INFO][Client:86] Subscribing on Topic :yGmZyJnpqPPIGwzj1564/iot/event
[INFO][ClientConnection:187] [<none> -> pulsar+ssl://iot-north-mq.heclouds.com:6651] Create ClientConnection, timeout=10000
[INFO][ConnectionPool:124] Created connection for pulsar+ssl://iot-north-mq.heclouds.com:6651-pulsar+ssl://iot-north-mq.heclouds.com:6651-0
[INFO][ClientConnection:403] [10.10.80.213:63773 -> 218.201.45.7:6651] Connected to broker
[ERROR][ClientConnection:1318] [10.10.80.213:63773 -> 218.201.45.7:6651] Connection closed with ConnectError (refCnt: 2)
[INFO][ConnectionPool:141] Remove connection for pulsar+ssl://iot-north-mq.heclouds.com:6651-pulsar+ssl://iot-north-mq.heclouds.com:6651-0
[ERROR][ClientImpl:507] Error Checking/Getting Partition Metadata while Subscribing on persistent://yGmZyJnpqPPIGwzj1564/iot/event -- ConnectError
[INFO][ClientConnection:275] [10.10.80.213:63773 -> 218.201.45.7:6651] Destroyed connection to pulsar+ssl://iot-north-mq.heclouds.com:6651-0
An error occurred: Failed to create consumer: ConnectError
Error: Failed to create consumer: ConnectError
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant