本文转载自 https://my.oschina.net/foreverich/blog/1517128
前言
本文解释了怎么对nginx和后端服务器组或代理服务器进行加密http通信。
内容提纲
前提条件
获取SSL服务端证书
获取SSL客户端证书
配置nginx
配置后端服务器
完整示例
前提条件
nginx源码或nginx plus源码
一个代理服务器或一个代理服务器组
SSL证书和私钥
获取SSL服务端证书
你可以从一个可信证书颁发机构(CA)购买一个服务器证书, 或者你可以使用openssl库创建一个内部CA, 并给自己颁发证书。这个服务器端证书和私钥需要部署在后端的每一个服务器上。
获取SSL客户端证书
nignx使用一个SSL客户端证书来对后端服务器组来标识自己。这个客户端证书必须是被一个可信CA签名的,并且和相匹配的私钥一起部署在nginx中。
你还需要在后端服务器上配置好所有的来源SSL连接都需要客户端证书,并信任这个CA颁发的nginx客户端证书。 然后当nginx连接后端时,将提供客户端证书,并且后端将会接收这个连接。
配置nginx
首先,改变相应URL到支持SSL连接的后端服务器组。在nginx的配置文件中,指明proxy_pass指令在代理服务器或后端服务器组中使用"https"协议:
location /upstream {
proxy_pass https://backend.example.com;