对于系统应用有安全性要求项目中,由于http在数据传输过程中,是直接明文传输的 , 网络传输数据被抓取以后可以直接查看到数据内容,所以我们一般在应用之间通过https 协议互相访问, https和http的传输协议是一样的 https只是在http 的基础上进行了ssl加密处理
安装完毕后,进入nginx/sbin
# ./nginx -t //查看nginx.conf 配置文件是否正确
# ./nginx -V //查看已经安装好的模块
4.2.2生成ssl证书
Linux下生成ssl证书
2.1生成秘钥key,运行:
$ openssl genrsa
-des3
-outserver
.key
2048
会有两次要求输入密码,输入同一个即可
然后你就获得了一个server.key文件.
以后使用此文件(通过openssl提供的命令或API)可能经常回要求输入密码,如果想去除输入密码的步骤可以使用以下命令:
$ openssl rsa
-inserver
.key
-outserver
.key
2.2创建服务器证书的申请文件server.csr,运行:
openssl req
-new-
key server
.key
-outserver
.csr
这里的参数设置可以都不填 直接enter到结束即可 如果要填的话建议和api-agent中的证书参数保持一致,如下
[jdk生成证书命令]
keytool -genkey -alias qunyi -keypass changingit!@# -keyalg RSA -keysize 1024 -validity 999 -keystore D:/keys/qunyi.keystore -storepass changingit!@#
您的名字与姓氏是什么?
[Unknown]: www.changingit.cn
您的组织单位名称是什么?
[Unknown]: xxxx
您的组织名称是什么?
[Unknown]: xxxx
您所在的城市或区域名称是什么?
[Unknown]: shanghai
您所在的省/市/自治区名称是什么?
[Unknown]: shanghai
该单位的双字母国家/地区代码是什么?
[Unknown]: zh
CN=www.changingit.cn, OU=qunyi, O=qunyi, L=shanghai, ST=shanghai, C=zh是否正确?
[否]: y
创建CA证书:
openssl req -new -x509 -key server.key -out ca.crt -days 3650
此时,你可以得到一个ca.crt的证书,这个证书用来给自己的证书签名.
创建自当前日期起有效期为期十年的服务器证书server.crt:
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key
-CAcreateserial -out server.crt
2.3 ls你的文件夹,可以看到一共生成了5个文件:
ca.crt ca.srl server.crt server.csr server.key
其中,server.crt和server.key就是nginx需要的证书文件.
4.2.3 Nginx中配置ssl
3.1在nginx.conf 加上如下配置
# HTTPS server
#
server {
listen 9203 ssl;
server_name localhost;
charset utf-8;
#access_log logs/host.access.log main;
# index index.html index.htm;
ssl_certificate /etc/nginx/hkmSSL/ca.crt;
ssl_certificate_key /etc/nginx/hkmSSL/server.key;
ssl_session_timeout 5m;
ssl_prefer_server_ciphers on;
ssl_verify_client off;
location / {
root /etc/nginx/html/hkm/dist;
}
#代理后台接口
location /api {
rewrite ^.+api/?(.*)$ /$1 break;
proxy_pass http://172.16.180.21:9103;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
说明:server.crt和server.key替换成对应的路径
3.2重新加载nginx配置文件 重启nginx服务,在sbin目录下
# ./nginx -s reload