因为业务需要,需将将一原IIS下的https站点迁移到nginx前端反向代理的架构中。

具体步骤为:

  1. 在IIS所在的Windows服务器上导出证书.

    1) 【开始】--->【运行】---> MMC

    2) 【添加】--->【证书】--->添加

    3) 选择【计算机账号】--->NEXT

    4) 选择【本地计算机】--->OK

    5) 【关闭】--->【确定】

    6) 依次展开【证书】--->【个人证书】

    7) 右键选择你想导出的证书

    8) 【所有任务】--->【导出】

    9) 按照提示导出一个pfx文件比如 sslcert.pfx

  2. 把pfx文件上传到nginx所在的linux服务器上,

    1) 导出Private key 

    openssl pkcs12 -in [sslcert].pfx -nocerts -out key.pem

    2) 从私有key中将密码remove(在1.9中导出pfx的时候会提示输入一个密码来保护这个pfx)

    openssl rsa -in key.pem -out server.key

    3) 导出证书

    openssl pkcs12 -in [sslcert].pfx -clcerts -nokeys -out cert.pem

  3. 将上述得到的cert.pem;server.key复制到需要的目录中,比如/etc/nginx/conf.d/ssl/中

  4. 编辑test.com.conf(nginx的server的conf)


  5. server { 
    listen 443; 
    server_name www.test.com; 
    ssl on; 
    ssl_certificate /etc/nginx/conf.d/ssl/ cert.pem; 
    ssl_certificate_key /etc/nginx/conf.d/ssl/server.key; 
      
    location /{ 
    proxy_pass http://test.com_server_pool; 
    
    } 
    }