目录
内容概要
签发证书
Nginx配置
内容概要
使用openssl工具生成自签的证书文件,应用和配置nginx,实现https访问应用
。
签发证书
1.创建密钥
openssl genrsa -des3 -out server.key 2048
注意:生成私钥,需要提供一个至少4位,最多1023位的密码。
2.生成CSR文件(证书申请)
openssl req -new -key server.key -out server.csr
需要依次输入国家,地区,城市,组织,组织单位,Common Name和Email。其中Common Name,可以自定义,如果要正式使用支持https,Common Name应该与访问域名保持一致,否则会引起浏览器警告。
可以将证书发送给证书颁发机构(CA),CA验证过请求者的身份之后,会出具签名证书。另外,如果只是内部或者测试需求,也可以使用OpenSSL实现自签名。继续往下看。
3.删除秘钥中的密码
openssl rsa -in server.key -out server.key
如果不删除密码,在应用加载的时候会出现输入密码进行验证的情况,不方便自动化部署。
4.生成自签名证书
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
内部或者测试使用,只要忽略证书提醒就可以了。
5.生成pem格式的公钥
openssl x509 -in server.crt -out server.pem -outform PEM
不同环境可能用到的证书格式不一样,需要pem格式的证书可以用上面的命令生成。
下面是生成的全家福文件
Nginx配置
1.将证书文件放到指定目录中 我这里是c:\nginx-1.21.6\cert\
2.配置nginx
xxx.conf
#
# HTTPS Server
#
server {
listen 443 ssl;
server_name grow-test.asia.cma-cgm.com;
ssl_certificate C:/nginx-1.21.6/cert/server.pem;
ssl_certificate_key C:/nginx-1.21.6/cert/server.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
client_max_body_size 100m;
proxy_read_timeout 600s;
location = /test {
root html;
index index.html index.htm;
}
location /test-api {
proxy_pass http://127.0.0.1:7001/test-api;
}
}