1

私の開発サーバーと、Quick Books が現在インストールされているサーバーの 2 つのサーバーがあります。

これは、Quick Books サーバーに保存されている私の .QWC ファイルです。

<?xml version="1.0" encoding="utf-8"?>
<QBWCXML>
<AppName>QBWebService</AppName>
<AppID></AppID>
<AppURL>https://<url>/soap.js</AppURL>
<AppDescription>This is The App</AppDescription>
<AppSupport>https://<url></AppSupport>
<UserName>User</UserName>
<OwnerID>{GUID}</OwnerID>
<FileID>{GUID}</FileID>
<QBType>QBFS</QBType>
</QBWCXML>

そして、これは開発サーバーのsoap.jsファイルのコードの下にあります。

var soap    = require('soap'),
    fs      = require('fs'),
    xml     = fs.readFileSync('wsdl.wsdl', 'utf8'),
    https   = require('https'),
    options = {
               key: fs.readFileSync('/path/to/key'),
               cert: fs.readFileSync('/path/to/crt'),
               ca: [
                    fs.readFileSync('/path/to/crt', 'utf8'),
                    fs.readFileSync('/path/to/crt', 'utf8'),
                    fs.readFileSync('/path/to/crt', 'utf8')
                   ]
              };
var server = https.createServer(options, function(request, response) {
            response.end("404: Not Found: " + request.url);
});

var myService = {
       'QBWebConnectorSvc': {
           'QBWebConnectorSvcSoap': {
               authenticate: function(args) {
                  return {
                      authenticateResult: { string: [guid(), {}]} 
                };
            }
        }
    }
};
server.listen(443, function() {
    console.log('Listening Jimbo');
});
soap.listen(server, '/wsdl', myService, xml);
var thisUrl = './wsdl/wsdl.wsdl';
soap.createClient(thisUrl, function(err, client) {
    if(err) {
        console.log('Error soap create client:');
        console.log(err);
    }
    else {
        console.log('In soap create client else');
        console.log('Client:');
        console.log(client);
        console.log('This should be describe');
        client.setSecurity(new soap.ClientSSLSecurity('/Path/to/Server/key', '/path/to/server/crt', function(err, secure) {
            if(err) {
                console.log('Error Not Secure:');
            }
            else {
                console.log('Secure');
                console.log(secure);
                client.QBWebConnectorSvc.QBWebConnectorSvcSoap.authenticate(function(err, done) {
                    if(err) {
                        console.log('Err Auth:');
                        console.log(err);
                    }
                    else {
                        console.log('Auth Done:');
                        console.log(done);
                    }
                });
            }
        }));

問題は、Web コネクタが「QBWC1048: QuickBooks Web コネクタで Web アプリケーション サーバー証明書を検証できませんでした」という証明書を検証できないと言い続けることです。証明書が良好で、2 台のコンピューター間でファイアウォールが開いていることはわかっています。

以下は、WebConnector ログ ファイルからのものです。

> 20160906.20:29:30 UTC : QBWebConnector.WebServiceManager.ReadQWC(QWCReader QWC) : Parsing application configuration xml file to load its content to variables
20160906.20:29:51 UTC   :  : QBWC1048: QuickBooks Web Connector could not verify the web application server certificate.Certificate URL:https://<url>/soap.jsStackTrace:at System.Net.HttpWebRequest.GetResponse()
at QBWebConnector.QWCReader.CheckCertURL()Message (description of theexception):Unable to connect to the remote server Source (name of application or object that caused the exception):SystemTargetSite (method that threw the exception):System.Net.WebResponse GetResponse()InnerException:System.Net.Sockets.SocketException (0x80004005): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond <IP>:443
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
atSystem.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state,IAsyncResult asyncResult, Exception& exception)
20160906.20:29:58 UTC   :QBWebConnector.WebServiceManager.ReadQWC(QWCReader QWC) : QBWC1048: QuickBooks Web Connector could not verify the web application server certificate.
QBWC1051: The new application was not added
20160906.20:29:58 UTC   :  : ~SingleInstanceHandler() - usingInstanceChannel = false. Returning without any Registry key delete or unmarshalling.

さらに情報が必要な場合は、お問い合わせください。

どんな助けでも大歓迎です。ありがとうございました。

4

0 に答える 0