NGINX配置HTTPS时,需要配置HTTPS证书,此时需要进行一些说明,对于Linux来说,通常需要配置两个文件,证书CRT和秘钥KEY,但是在Windows中通常是一个文件PFX,本次就拿PFX为例,说明一下如何将PFX转换成CRT和KEY并配置到Linux上,从而完成NGINX配置HTTPS。
证书请求
首先需要向权威机构,比如我们使用的是GeoTrust CN RSA CA G1颁发的证书,申请后会下发一个包含公钥的证书和一个私钥。
我们此时得到就是****.pfx和一个私钥KEY。
PFX生成CRT和KEY
区别一下CRT和CER,二者都是证书的意思,CRT常用于Linux,CER常用于Windows,二者都有两种编码格式PEM和DER。我们了解到,PEM常用于Linux,同时Linux还需要一个秘钥文件KEY;DER常用于Windows,因此我们需要通过PFX生成一个PEM格式编码的CRT文件,和一个KEY秘钥文件配置到Linux中。
生成秘钥
openssl pkcs12 -in test.com.pfx -out server.key -nocerts
此时需要输入我们自己私钥三次。
生成证书
openssl pkcs12 -in test.com.pfx -out server.crt
同样需要输入三次我们的秘钥。
生成PEM
openssl x509 -in server.crt -outform PEM -out server.pem
最后查看生成的文件
配置NGINX
将KEY,PEM移动到指定位置/usr/local/nginx/conf/key
然后在nginx中配置一下内容。
server {
listen 443 ssl;
server_name 域名;
ssl_certificate /usr/local/nginx/conf/key/server.pem;
ssl_certificate_key /usr/local/nginx/conf/key/server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
error_page 500 502 503 504 /50x.html;
error_page 404 /404.html;
error_page 403 /403.html;
location = /50x.html {
root html;
}
location = /404.html {
root html;
}
location = /403.html {
root html;
}
location / {
.............
.............
}
}