前几天遇到一个很头痛的问题,一个同事丢给我了一个.pfx文件和一个.key文件,我要用nginx配置https(linux服务器,反向代理IIS的web),但是我配置nginx.conf ,ssl证书pfx文件不能用,百度了好久拖了好几天后来终于出来了,在这里我总结一下几个关键点,希望对大家有帮助
1.证书格式转换
PFX证书是window下面的证书,所以你Linux证书需要使用这个证书,我们需要把.PFX证书转换一下。我这里就转换成crt格式的了。
#转换成crt证书
openssl pkcs12 -in ./server.pfx -clcerts -nokeys -out ./server.crt
#密钥
openssl pkcs12 -in ./server.pfx -nocerts -nodes -out ./server.key
2.修改nginx配置
证书转换好后,就配置nginx.conf配置信息了,操作也很简单
server {
#监听443端口。443为知名端口号,主要用于HTTPS协议
listen 443 ssl;
server_name 这个填写你的域名; #项目域名
ssl_certificate /etc/nginx/key/server.crt; #(证书公钥)
ssl_certificate_key /etc/nginx/key/server.key; #(证书私钥)
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
charset utf-8;
location / {
proxy_pass https://代理站点的ip地址:443;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
expires -1;
add_header Cache-Control no-store;
}
proxy_cache_valid any 1m;
proxy_cache_min_uses 3;
}
3.重启nginx
配置完了,重新load一下配置文件
# 先校验配置文件是否OK
./nginx -t
# 配置文件OK的话执行 reload命令重新reload配置信息
./nginx -s reload(注意,你要切换到nginx相对应的目录)