<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Exported Qlik Sense Certificates Do Not Include Configured DNS in Integration, Extension &amp; APIs</title>
    <link>https://community.qlik.com/t5/Integration-Extension-APIs/Exported-Qlik-Sense-Certificates-Do-Not-Include-Configured-DNS/m-p/2521460#M22307</link>
    <description>&lt;P&gt;Have a look at:&lt;BR /&gt;&lt;A href="https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/RepositoryServiceAPI/Content/Sense_RepositoryServiceAPI/RepositoryServiceAPI-Example-Connect-cURL-Certificates.htm" target="_blank"&gt;https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/RepositoryServiceAPI/Content/Sense_RepositoryServiceAPI/RepositoryServiceAPI-Example-Connect-cURL-Certificates.htm&lt;/A&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 17 Jun 2025 12:33:43 GMT</pubDate>
    <dc:creator>SimonMinifie</dc:creator>
    <dc:date>2025-06-17T12:33:43Z</dc:date>
    <item>
      <title>Exported Qlik Sense Certificates Do Not Include Configured DNS</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Exported-Qlik-Sense-Certificates-Do-Not-Include-Configured-DNS/m-p/2521417#M22303</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;We recently installed a new SSL certificate on our Qlik Sense server and configured the Central Proxy to reference this custom certificate.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Full details of our setup are similar to this discussion:&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="https://community.qlik.com/t5/Management-Governance/Qlik-Sense-still-using-default-certificate-rather-than-SSL/m-p/2436486#M26927" target="_blank" rel="noopener"&gt;https://community.qlik.com/t5/Management-Governance/Qlik-Sense-still-using-default-certificate-rather-than-SSL/m-p/2436486#M26927&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;We can now access Qlik Sense from the configured DNS (qliksenseserver.company.com)&lt;/SPAN&gt;&lt;SPAN&gt;) in a browser, and the correct certificate is displayed there. However, when we tried exporting certificates from the QMC on DNS name, they still appear based on the default self-signed certificate.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;As a result, any backend client (e.g., Java WebSocket clients) fails SSL validation with an error like:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Error:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;javax.net.ssl.SSLHandshakeException: No subject alternative DNS name matching qliksenseserver.company.com)&lt;/SPAN&gt;&lt;SPAN&gt;found.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Similarly, using curl results in:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;curl: (60) SSL: no alternative certificate subject name matches target host name&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This suggests that the exported certificates do not include the configured DNS name (no SAN — Subject Alternative Name — entry for the domain).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Question:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;How can we export client certificates from Qlik Sense that include the correct SAN or are aligned with the new configured dns name (qliksenseserver.company&lt;/SPAN&gt;.com&lt;SPAN&gt;)?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 17 Jun 2025 07:12:08 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Exported-Qlik-Sense-Certificates-Do-Not-Include-Configured-DNS/m-p/2521417#M22303</guid>
      <dc:creator>nilesh007</dc:creator>
      <dc:date>2025-06-17T07:12:08Z</dc:date>
    </item>
    <item>
      <title>Re: Exported Qlik Sense Certificates Do Not Include Configured DNS</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Exported-Qlik-Sense-Certificates-Do-Not-Include-Configured-DNS/m-p/2521459#M22306</link>
      <description>&lt;P&gt;Hi Nilesh,&lt;BR /&gt;The 3rd party SSL cert binds itself to port 443 for https traffic.&amp;nbsp;&lt;BR /&gt;I would suggest from the responses that you are coming into the Sense server via one of the APIs such as 4242 for the QRS api.&lt;BR /&gt;Your new SSL certificate won't be bound to that port.&amp;nbsp;&lt;BR /&gt;This would work if you were calling the Proxy API over port 443, but with the rest you're going to have to use the server name.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Simon&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 17 Jun 2025 12:32:14 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Exported-Qlik-Sense-Certificates-Do-Not-Include-Configured-DNS/m-p/2521459#M22306</guid>
      <dc:creator>SimonMinifie</dc:creator>
      <dc:date>2025-06-17T12:32:14Z</dc:date>
    </item>
    <item>
      <title>Re: Exported Qlik Sense Certificates Do Not Include Configured DNS</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Exported-Qlik-Sense-Certificates-Do-Not-Include-Configured-DNS/m-p/2521460#M22307</link>
      <description>&lt;P&gt;Have a look at:&lt;BR /&gt;&lt;A href="https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/RepositoryServiceAPI/Content/Sense_RepositoryServiceAPI/RepositoryServiceAPI-Example-Connect-cURL-Certificates.htm" target="_blank"&gt;https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/RepositoryServiceAPI/Content/Sense_RepositoryServiceAPI/RepositoryServiceAPI-Example-Connect-cURL-Certificates.htm&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 17 Jun 2025 12:33:43 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Exported-Qlik-Sense-Certificates-Do-Not-Include-Configured-DNS/m-p/2521460#M22307</guid>
      <dc:creator>SimonMinifie</dc:creator>
      <dc:date>2025-06-17T12:33:43Z</dc:date>
    </item>
    <item>
      <title>Re: Exported Qlik Sense Certificates Do Not Include Configured DNS</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Exported-Qlik-Sense-Certificates-Do-Not-Include-Configured-DNS/m-p/2523087#M22347</link>
      <description>&lt;P&gt;Hi Simon,&lt;/P&gt;&lt;P&gt;I am not connecting to the 4242 QRS APIs; instead, I am trying to connect to the QlikSense WebSocket using Java, but I am encountering an error.&lt;/P&gt;&lt;P&gt;However, when I connect using Node.js with the public DNS, I am able to establish a connection successfully. Here’s the Node.js code I used:&lt;/P&gt;&lt;PRE&gt;const WebSocket = require('ws');
const fs = require('fs');
const path = require('path');

var certPath = path.join('C:', 'ProgramData', 'Qlik', 'Sense', 'Repository', 'Exported Certificates', '.Local Certificates');
var certificates = {
    cert: fs.readFileSync(path.resolve(certPath, 'client.pem')),
    key: fs.readFileSync(path.resolve(certPath, 'client_key.pem')),
    root: fs.readFileSync(path.resolve(certPath, 'root.pem'))
};

const ws = new WebSocket('wss://qliksensebi-uat.qliksense.com:4747/app/', {
    ca: [certificates.root],
    cert: certificates.cert,
    key: certificates.key,
    headers: {
        'X-Qlik-User': 'UserDirectory=qliksense3; UserId=nilesh'
    },
    rejectUnauthorized: false
});

ws.onopen = function (event) {
    console.log("Connected");
};&lt;/PRE&gt;&lt;P&gt;When trying to connect using Java, I am receiving an error. I would appreciate your assistance in troubleshooting this issue.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;WebSocket ERROR: No subject alternative DNS name matching qliksenseexpobi.exponentia.ai found.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;javax.net.ssl.SSLHandshakeException: No subject alternative DNS name matching qliksenseexpobi.exponentia.ai found.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;WebSocket CLOSED. Reason:&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:130)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:383)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:326)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:321)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:647)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:467)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:363)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:206)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1506)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1421)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:922)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1013)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/java.io.InputStream.read(InputStream.java:220)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at org.java_websocket.client.WebSocketClient.run(WebSocketClient.java:515)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/java.lang.Thread.run(Thread.java:1583)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;Caused by: java.security.cert.CertificateException: No subject alternative DNS name matching qliksenseexpobi.exponentia.ai found.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.util.HostnameChecker.matchDNS(HostnameChecker.java:207)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.util.HostnameChecker.match(HostnameChecker.java:103)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:466)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:417)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:237)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:631)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;... 15 more&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;Error fetching KPI:&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;org.java_websocket.exceptions.WebsocketNotConnectedException&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at org.java_websocket.WebSocketImpl.send(WebSocketImpl.java:673)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at org.java_websocket.WebSocketImpl.send(WebSocketImpl.java:649)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at org.java_websocket.client.WebSocketClient.send(WebSocketClient.java:431)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at QlikWebSocketClient.sendRpc(Main.java:256)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at QlikKpiFetcher.fetchKpi(Main.java:300)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT color="#FF0000"&gt;&lt;SPAN&gt;at Main.main(Main.java:56)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 03 Jul 2025 11:31:51 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Exported-Qlik-Sense-Certificates-Do-Not-Include-Configured-DNS/m-p/2523087#M22347</guid>
      <dc:creator>nilesh007</dc:creator>
      <dc:date>2025-07-03T11:31:51Z</dc:date>
    </item>
  </channel>
</rss>

