我有一个在与JIRA REST API集成的服务器上运行的网站。为了验证请求,该站点要求提供用户凭据并将其发送给JIRA以返回会话(请参阅this)。
显然,我不希望这些凭据以明文形式出现。虽然这将在不面向外部的内部网络上运行,但它仍然很重要。
我的问题是(借口说明不好):即使JIRA使用HTTPS,我是否需要为MY服务器获取SSL证书。在这种情况下,JIRA具有有效的SSL证书,并通过HTTPS保护。
概述'流程':
User enters user/pass and submits HTML form (index.html on nodejs) ->
-> Request (HTTP POST) is sent to my server w/ creds (nodejs)
-> My server sends a request to JIRA (HTTPS)
<- JIRA responds with JSON
<- Response is received by my server
<- My server sends data back to index.html
我的想法是,在这种情况下我需要HTTPS,因为:
XX.XX.XX.XX <-/-> YY.YY.YY.YY <---> ZZ.ZZ.ZZ.ZZ
[XX] = client (index.html)
[YY] = server (nodejs)
[ZZ] = JIRA
在该&#39;图表中,客户端通过HTTP将凭据发送到我的服务器,这是不安全的。然后,服务器会将凭据发送给启用了HTTPS的JIRA。
在这种情况下,我假设凭证可以在X和Y之间嗅探,但不能在Y和Z之间嗅探(我开始迷惑自己......)
(P.S。由于CORS限制,我需要将服务器放在中间位置。除了HTTPS问题之外,一切正常。)
答案 0 :(得分:1)
假设可以在任何地方嗅探凭据,加密所有内容。
答案 1 :(得分:1)
Request (HTTP POST) is sent to my server w/ creds (nodejs)
是HTTP,而不是HTTPS,这是一个安全问题。获取证书并使用TLS 1.2设置HTTPS。
请记住,如果安全性差,用户会受到影响,请将您自己放在原位,您是否希望您在Internet上使用的服务具有最佳的实践安全性?
答案 2 :(得分:1)
您说得对:如果服务器Y上没有配置SSL,则客户端X和服务器Y之间的HTTP通信是明文。凭证可以在那里嗅探,但不能在Y和Z之间。
如果你在X或Y上运行它(或者可能看到数据包之间的任何东西),你可以使用wireshark这样的工具轻松检查:https://www.wireshark.org/。或者你的tcpdump
命令行没有GUI(在Unix / Linux上)。
为了确保这一点,您确实需要在服务器Y上切换到HTTPS,这意味着要在其上放置SSL证书。您可以使用自签名证书进行测试(但浏览器会对其进行投诉),然后提供有效的证书:因为您似乎在公司环境中,您可能拥有内部浏览器信任的公司证书颁发机构。 / p>