文档章节

nginx添加ssl模块配置https

lindeyi
 lindeyi
发布于 2016/10/09 10:00
字数 638
阅读 417
收藏 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

没有更多内容

加载失败,请刷新页面

加载更多

js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
昨天
2
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
昨天
4
0
"errcode": 41001, "errmsg": "access_token missing hint: [w.ILza05728877!]"

Postman获取微信小程序码的时候报错, errcode: 41001, errmsg: access_token missing hint 查看小程序开发api指南,原来access_token是直接当作parameter的(写在url之后),scene参数一定要...

两广总督bogang
昨天
8
0
MYSQL索引

索引的作用 索引类似书籍目录,查找数据,先查找目录,定位页码 性能影响 索引能大大减少查询数据时需要扫描的数据量,提高查询速度, 避免排序和使用临时表 将随机I/O变顺序I/O 降低写速度,占用磁...

关元
昨天
7
0
撬动世界的支点——《引爆点》读书笔记2900字优秀范文

撬动世界的支点——《引爆点》读书笔记2900字优秀范文: 作者:挽弓如月。因为加入火种协会的读书活动,最近我连续阅读了两本论述流行的大作,格拉德威尔的《引爆点》和乔纳伯杰的《疯传》。...

原创小博客
昨天
22
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部