Centos7.5 下Nginx配置SSL支持https访问。

核心配置:

? 通过指定由受信任的证书颁发机构(CA)颁发的有效证书,将服务器配置为侦听端口上的HTTPS流量。
? 通过配置nginx.conf文件来加强安全性。示例包括选择更强大的密码,并将所有流量通过HTTP重定向到HTTPS。
? 添加HTTP Strict-Transport-Security(HSTS)头部确保客户端所做的所有后续请求仅通过HTTPS。

#################################################################################
nginx配置ssl,需要确保nginx包含相应的模块--with-http_ssl_module

查看nginx安装参数是否已经包含此模块,如果未包含请先安装此模块。

[[email protected] ~]# nginx -V

添加/etc/nginx/proxy.conf配置文件:

[[email protected] ~]# vi etc/nginx/proxy.conf
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;

编辑/etc/nginx/nginx.conf配置文件。配置主要包含两个部分http和server。

vi /etc/nginx/nginx.conf
http {
include /etc/nginx/proxy.conf;
limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;
server_tokens off;

sendfile on;
keepalive_timeout 29; # Adjust to the lowest possible value that makes sense for your use case.
client_body_timeout 10; client_header_timeout 10; send_timeout 10;

upstream hellomvc{
    server localhost:5000;
}

server {
    listen *:80;
    add_header Strict-Transport-Security max-age=15768000;
    return 301 https://$host$request_uri;
}

server {
    listen *:443    ssl;
    server_name     example.com;
    ssl_certificate /etc/ssl/certs/testCert.crt;
    ssl_certificate_key /etc/ssl/certs/testCert.key;
    ssl_protocols TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
    ssl_ecdh_curve secp384r1;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;
    ssl_stapling on; #ensure your cert is capable
    ssl_stapling_verify on; #ensure your cert is capable

    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
    add_header X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;

    #Redirects all traffic
    location / {
        proxy_pass  http://hellomvc;
        limit_req   zone=one burst=10;
    }
}

}

有几处需要更改
? server_name改成你的域名=申请证书绑定的域名。
? ssl_certificate改成你的公钥路径。
? ssl_certificate_key改成你的私钥路径。

一些安全配置

防止Clickjacking(点击劫持),Clickjacking是一种恶意技术来收集受感染的用户的点击。劫持受害者(访问者)点击感染的网站,使用X-FRAME-OPTIONS。

编辑nginx.conf文件:

[[email protected] ~]# vi /etc/nginx/nginx.conf
将配置中的
add_header X-Frame-Options DENY;
更改为
add_header X-Frame-Options SAMEORIGIN;
重新加载nginx

[[email protected] ~]# service nginx reload

MIME类型的嗅探,此标头防止大多数浏览器从声明的内容类型中嗅探响应,因为标头指示浏览器不要覆盖响应内容类型,使用nosniff选项

编辑nginx.conf文件:

[[email protected] ~]# vi /etc/nginx/nginx.conf
添加行
add_header X-Content-Type-Options nosniff;
上文的nginx.conf已配置好此标头,保存文件,重新启动Nginx。

原文地址:http://blog.51cto.com/13550113/2318276

时间: 2024-08-02 10:13:11

Centos7.5 下Nginx配置SSL支持https访问。的相关文章

Centos7.2下Nginx配置SSL支持https访问(站点是基于.Net Core2.0开发的WebApi)

准备工作 1.基于nginx部署好的站点(本文站点是基于.Net Core2.0开发的WebApi,有兴趣的同学可以跳http://www.cnblogs.com/GreedyL/p/7422796.html) 2.证书颁发机构(CA)颁发的有效证书,其中我们需要两个文件,一个是 .key文件(私钥),另一个是 .crt或.pem文件(公钥) 核心功能 ? 通过指定由受信任的证书颁发机构(CA)颁发的有效证书,将服务器配置为侦听端口上的HTTPS流量. ? 通过配置nginx.conf文件来加强

Windows下Nginx配置SSL实现Https访问(包含证书生成)

Vincent.李 Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https? HTTP全名超文本传输协议,客户端据此获取服务器上的超文本内容.超文本内容则以HTML为主,客户端拿到HTML内容后可根据规范进行解析呈现.因此,HTTP主要负责的是"内容的请求和获取".问题就出在这部分.行监控.劫持.阻挡等行为很容易导致网站泄密,一些关键参数比如登录密码开发者会在客户端

怎么使用Nginx配置ssl实现https访问的方法

大家都知道现在如果你访问一个网站,如果是http开头的访问,状态栏地址会显示不安全 但如果是https访问,会显示安全  原因: HTTP(超文本传输协议)被用于在Web浏览器和网站服务器之间,以明文方式传递信息,不提供任何方式的数据加密,因此使用HTTP协议传输隐私信息(如:银行卡号.密码等支付信息)非常不安全. 为了解决这一安全缺陷,网景公司设计了SSL(Secure Sockets Layer)协议,在HTTP的基础上加入了SSL(Secure Sockets Layer)协议,SSL依靠

Apache配置SSL 实现https访问

本次坏境:CA和apache为同一台主机 先使本机作为CA服务端: [[email protected]~]#yum -y install openssl openssl-devel [[email protected]~]#vi /etc/pki/tls/openssl.cnf [ CA_default ] dir = ../../CA 改为: [ CA_default ] dir= /etc/pki/CA 为了减少不必要的重复操作,可以预先定义[ req_distinguished_name

windows下apache配置ssl(https)服务器

SSl是为Http传输提供安全的协议,通过证书认证来确保客户端和网站服务器之间的数据是安全, 可以通过apache自带的openssl进行配置: 步骤如下: 1.安装有openssl模板的apache,大多数都会有,判断有没有 只需要查看 apache\bin 下有没有 openssl.exe 运行程序: 2.配置 apache/conf/httpd.conf 文件,如下: #LoadModule ssl_module modules/mod_ssl.so #Include conf/extra

CentOs下,配置tomcat支持https

网上此类教程一大堆,本文主要记录步骤和几个注意点. 首先,我们使用jdk的keytool生成证书.命令如下: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo } span.s1 { } keytool -genkey -alias tomcat -keyalg RSA -keystore tomcat.keystore 注意:检查你centos使用的是不是openjdk,如果是请卸载openjdk,安装oracle的jdk.为

【linux】之Nginx安装使用和配置SSL支持

本文采用的是nginx源码安装 1.下载nginx源码包 wget http://nginx.org/download/nginx-1.8.0.tar 或者登录nginx官网下载更高版本 2.nginx安装需要其他环境的支持 环境是否安装了gcc rpm -qa|grep gcc 如果没有则需要yum install gcc-c++ 环境是否安装了pcre 该文件为正则表达式库.让nginx支持rewrite需要安装这个库 如果没有安装可以采用yum安装  yum -y install pcre

Windows下Apache配置SSL以支持https及出错的解决办法

步骤一:安装apache,使其支持SSL,并安装php 1.安装配有SSL模块的apache,apache_2.2.8-win32-x86-openssl-0.9.8g 2.配置apache以支持SSL: 1)打开apache的配置文件conf/httpd.conf LoadModule ssl_module modules/mod_ssl.so Include conf/extra/httpd-ssl.conf 去掉两行前面的# 2)注意修改httpd-ssl.conf 文件里的两个字段: S

Nginx配置SSL证书部署HTTPS网站

一.什么是 SSL 证书,什么是 HTTPSSSL 证书是一种数字证书,它使用 Secure Socket Layer 协议在浏览器和 Web 服务器之间建立一条安全通道,从而实现:1.数据信息在客户端和服务器之间的加密传输,保证双方传递信息的安全性,不可被第三方窃听:2.用户可以通过服务器证书验证他所访问的网站是否真实可靠. HTTPS 是以安全为目标的 HTTP 通道,即 HTTP 下加入 SSL 加密层.HTTPS 不同于 HTTP 的端口,HTTP默认端口为80,HTTPS默认端口为44