文档章节

nginx添加ssl模块配置https

lindeyi
 lindeyi
发布于 2016/10/09 10:00
字数 638
阅读 360
收藏 0

##nginx添加ssl模块步骤##
#1、重新编译添加ssl模块

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

出现如下问题时候需要安装openssl-devel 

./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=<path> option.

#2、安装openssl-devel

yum -y install openssl openssl-devel 

#3、生成编译脚本

make 

#4、创建软连接解决libpcre.so.1找不到问题

error while loading shared libraries: libpcre.so.1:
 cannot open shared object file: No such file or directory

出现如上问题时候需要建立软连接,不是所有操作系统都在/usr/local/lib下, 有的在/lib目录下

ln -s /usr/local/lib/libpcre.so.1 /lib64/ 

#5、替换已有脚本

cp ./objs/nginx /usr/local/nginx/sbin/ 
yes 

#6、在nginx配置文件server中加入ssl配置项。如下

 server { 
    server_name  localhost;
    listen 443;
    ssl on;
  
    ssl_certificate  /usr/local/nginx/ssl/mytest.crt; #服务器证书位置 
    ssl_certificate_key  /usr/local/nginx/ssl/mytest.key; #服务器私钥
    #ssl_client_certificate /usr/local/nginx/ssl/ca.crt;     #CA证书用于验证客户端证书的合法性     
    #ssl_verify_client       on;                      #开启对客户端的验证

    ssl_session_timeout  5m; 
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    #启用TLS1.1、TLS1.2要求OpenSSL1.0.1及以上版本,若您的OpenSSL版本低于要求,请使用 ssl_protocols TLSv1;
    ssl_ciphers  HIGH:!RC4:!MD5:!aNULL:!e
    location / {
            root   html;
            index  index.html index.htm;
    }
}

 

#7、配置所有http转https

server {
       listen       80;
       server_name  localhost;
       return 301 https://$server_name$request_uri;
  }

#8、如果双向认证需要把客户端证书信息带到后台服务,需要如下配置

proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header Client-Cert $ssl_client_cert; # 将客户端证书放到http头中传递给后端的tomcat
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 30;
proxy_send_timeout 15;
proxy_read_timeout 15;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_ssl_certificate localhost.pem; # 如果后端的tomcat也要求客户端认证,则nginx与tomcat建立连接时会把该证书发送给tomcat
proxy_ssl_certificate_key localhost.key;
proxy_ssl_trusted_certificate chain.pem; # 如果启用了proxy_ssl_verify,则使用该文件中的CA公钥验证后端tomcat的证书
proxy_ssl_verify on; # nginx是否验证后端tomcat的证书
proxy_ssl_verify_depth 2;

#9、服务的拿到客户端证书

// 普通证书获取方式
X509Certificate[] requestCents = (X509Certificate[]) request
				.getAttribute("javax.servlet.request.X509Certificate");
X509Certificate cert = requestCents[0];

// nginx代理证书获取方式
String header = request.getHeader("Client-Cert");
header = header.replace("-----BEGIN CERTIFICATE-----", "").replaceAll("\\t", "").replace("-----END CERTIFICATE-----", "");
Decoder decoder = Base64.getDecoder();
ByteArrayInputStream bio = new ByteArrayInputStream(decoder.decode(header));
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate)cf.generateCertificate(bio);
		
			

centos下一键安装nginx方式:

先添加CentOS 7 EPEL仓库

yum install epel-release

然后通过yum安装nginx

yum install nginx

© 著作权归作者所有

共有 人打赏支持
lindeyi
粉丝 5
博文 16
码字总数 14150
作品 0
海淀
nginx 添加自签名认证 https

nginx 添加自签名认证 https 首先启用 ssl 认证 安装编辑 一、创建证书 创建相应目录:mkdir -p /data1/nginx/ssl/ 进入/data1/nginx/ssl/ 目录下,创建CA认证 二、nginx 配置https 和 http...

wei_666
04/13
0
0
Nginx安装配置详解-修订版

版本更新历史: v1.2更新内容: 添加了proxy_connect正向代理模块的说明 添加了stream配置tcp代理 更新了gzip的配置 修复了大部分安装配置错误 改善了lua安装过程 v1.1更新内容: 集成ngxlu...

Leon_zhang50773
2016/11/17
0
0
开启全站HTTPS时代-Nginx SSL+tomcat集群

目录: 1、凭证申请 Let’s Encrypt 2、Nginx支持多域名ssl证书 3、Nginx强制使用https访问(http跳转到https) 4、配置 Tomcat SSL For Free 免费 SSL 凭证申请 Let’s Encrypt 什么是Let’s...

Javen205
2017/11/18
0
0
Ubuntu Nginx配置https,解决“parameter requires ngx_http_ssl_module”的问题

今天再做nginx下https配置的时候,配置完nginx重启的时候,报了如下错误: 原因也很简单,nginx缺少httpsslmodule模块,编译安装的时候带上--with-httpsslmodule配置就行了,但是现在的情况是...

李大腾腾
04/25
0
0
nginx添加模块与https支持

实例1:为已安装nginx动态添加模块 以安装rtmp媒流模块为例: 1)下载第三方模块到 [root@LNMP nginx-1.8.1]# git clone https://github.com/arut/nginx-rtmp-module.git 2)查看nginx编译安装...

80后小菜鸟
2017/08/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

kubeadm部署kubernetes集群

一、环境要求 这里使用RHEL7.5 master、etcd:192.168.10.101,主机名:master node1:192.168.10.103,主机名:node1 node2:192.168.10.104,主机名:node2 所有机子能基于主机名通信,编辑...

人在艹木中
今天
6
0
Shell特殊符号总结以及cut,sort,wc,uniq,tee,tr,split命令

特殊符号总结一 * 任意个任意字符 ? 任意一个字符 # 注释字符 \ 脱义字符 | 管道符 # #号后的备注被忽略[root@centos01 ~]# ls a.txt # 备注 a.txt[root@centos01 ~]# a=1[root@centos01...

野雪球
今天
2
0
OSChina 周二乱弹 —— 程序员圣衣

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文:分享Skeeter Davis的单曲《The End of the World》 《The End of the World》- Skeeter Davis 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
今天
14
0
[ python import module ] 导入模块

import moudle_name ----> import module_name.py ---> import module_name.py文件路径 -----> sys.path (这里进行查找文件) # from app.web import Personimport app.web.Person as Pe......

_______-
昨天
5
0
Redis性能问题排查解决手册

一、性能相关的数据指标 通过Redis-cli命令行界面访问到Redis服务器,然后使用info命令获取所有与Redis服务相关的信息。通过这些信息来分析文章后面提到的一些性能指标。 nfo命令输出的数据可...

IT--小哥
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部