nginx+tomcat+https

nginx生成证书:

方案一、
1、cd /usr/local/nginx/conf
2、openssl genrsa -des3 -out server-wiki.key 1024
3、openssl req -new -key server-wiki.key -out server-wiki.csr
4、cp server-wiki.key server-wiki.key.org
5、openssl rsa -in server-wiki.key.org -out server-wiki.key
6、openssl x509 -req -days 365 -in server-wiki.csr -signkey server-wiki.key -out server-wiki.crt

方案二、
生成一个RSA密钥
openssl genrsa -des3 -out 33iq.key 1024
拷贝一个不需要输入密码的密钥文件
openssl rsa -in 33iq.key -out 33iq_nopass.key
生成一个证书请求
openssl req -new -key 33iq.key -out 33iq.csr
自己签发证书
openssl x509 -req -days 365 -in 33iq.csr -signkey 33iq.key -out 33iq.crt

方案三(Namecheap生成请求文件)、
1、以下命令是用来生成密钥文件,一种是2048位,一种是1024位,请根据你的SSL商的要求来决定。Namecheap SSL要求是生成2048位的密钥文件。
openssl genrsa -out privkey.key 2048
openssl genrsa -out privkey.key 1024
2、最后就是生成证书请求文件了:
openssl req -new -key privkey.pem -out cert.csr
3、执行以上命令后,会要求你填写基本信息,例如国家、邮箱等。

4、以上只是生成秘钥和请求文件。key文件是在获得ssl证书后配置nginx时使用的。

 

备注:在网上了解到,有些证书机构颁发的证书文件都不同,最好在购买网站上看一下是否需要合并多个文件到一个文件中。

nginx 配置:


#定义一个虚拟机 监听80端口 把请求跳转到https
server {
# 监听端口
listen 80;
server_name www.abc.com;
rewrite ^/(.*) https://$server_name$1 permanent;
}

server {
listen 443;
server_name www.abc.com;
#开启ssl
ssl on;
#ssl证书的路径指向
ssl_certificate /etc/nginx/ssl/cert_chain.crt;
ssl_certificate_key /etc/nginx/ssl/privkey.key;

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;

ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

location /{
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
proxy_connect_timeout 240;
proxy_send_timeout 240;
proxy_read_timeout 240;
# 这里是指向upstream 配置,一定要与upstream配置的名字相同。如果tomcat配置了https。此处要以https开头
proxy_pass http://www.yi-qianbao.com;

}
location /status {
stub_status on;
access_log off;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /opt/nginx/html;
}

location ~ /\.ht {
deny all;
}
}

posted on 2017-11-10 15:13  renliping  阅读(214)  评论(0编辑  收藏  举报

导航