当需要ssl为真时,无法调用EWS

我在开发环境中安装了Exchange Server 2010。 我正试图调用EWS服务forms节点JS Web应用程序,这也是在开发环境。

当我设置在IISpipe理器上的EWS网站上需要ssl时,我得到403错误。 这是正常的,因为我的应用程序的URL端点是用http,确切地说: http : //192.168.50.192/EWS/Exchange.asmx

但是,当我尝试与https https://192.168.50.192/EWS/Exchange.asmx是https,我越来越。

我在Web窗体上input这个URL,然后以编程方式组成我发送到这个URL的SOAP请求。

我试图启动ngrok并在本地使用https的整个应用程序,但我得到了相同的结果。

如果ssl证书是问题,ngrok有有效的证书。

请指教。

我是否需要在IIS上应用任何其他设置?

你可以检查错误的细节,或者你有一个日志,你可以检查?

通过阅读这些问题,至less有两件事情可能导致这个问题,如果你的应用程序没有共享相同的域名,你可能会遇到同样的域名策略问题,并且你可以用CORS策略来解决这个问题。

如果问题与SSL证书无关,那么您的问题可能与CORS策略有关( 如何允许CORS ? , https://senecacd.wordpress.com/2013/02/15/enabling-cors-on-a-node -js-server-same-origin-policy-issue / )

如果这与SSL有关,那么您需要创build一个自签名的SSL证书并尝试使用它。 (您需要禁用SSL对等validation。)

你可以尝试两件事情:

  1. 以主机名/ fqdn(exchserver / exch.domain.com)格式生成SSL证书,而不是使用IP地址。 使用Exchangepipe理中心/ IIS导入此SSL证书和链。 还要在运行nodejs应用程序的客户端计算机中信任此证书。
  2. 指示nodejs忽略服务器证书,将此行放在所有代码之前process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; 从忽略使用https.request的node.js中无效的自签名SSL证书?

如果您在nodejs应用程序中广泛使用EWS,则应考虑使用ews-javascript-api node模块