3.Nginx 配置https

合集下载

详解nginx使用ssl模块配置支持HTTPS访问

详解nginx使用ssl模块配置支持HTTPS访问

详解nginx使⽤ssl模块配置⽀持HTTPS访问背景:SSL英⽂名为Secure Socket Layer,安全套接字层。

SSL是⼀种数字证书,它使⽤ssl协议在浏览器和web server之间建⽴⼀条安全通道,数据信息在client与server之间的安全传输.本篇博客是对这个操作步骤的详解。

前提:1. 配置SSL模块⾸先需要CA证书,CA证书可以⾃⼰⼿动颁发也可以在阿⾥云申请,本⼈在阿⾥云上申请的证书。

(⼿动颁发可参考⽂章底部链接)2. 默认情况下ssl模块并未被安装,如果要使⽤该模块则需要在编译nginx时指定–with-http_ssl_module参数.操作步骤:⼀、下载CA证书1. 登录阿⾥云,选择“控制台”-“产品与服务”,在“安全(云盾)”⼀栏中选择“CA证书服务(数据安全)”。

2.在已经购买好的证书点击“下载”,在新打开的页⾯上选择“Nginx/Tengine”,点击“下载证书for Nginx”。

⼆、在Nginx配置⽂件中安装证书⽂件说明:1. 证书⽂件“证书名称.pem‘',包含两段内容,请不要删除任何⼀段内容。

2. 如果是证书系统创建的CSR,还包含:证书私钥⽂件“证书名称.key”。

( 1 ) 在Nginx的配置⽂件所在的⽬录下创建cert⽂件夹,并且将下载的全部⽂件拷贝到cert⽬录中。

如果申请证书时是⾃⼰创建的CSR⽂件,请将对应的私钥⽂件放到cert⽬录下并且命名为“证书名称.key”;( 2 ) 打开 Nginx 安装⽬录下 conf ⽬录中的 nginx.conf ⽂件,找到:# HTTPS server# #server {# listen 443;# server_name localhost;# ssl on;# ssl_certificate cert.pem;# ssl_certificate_key cert.key;# ssl_session_timeout 5m;# ssl_protocols SSLv2 SSLv3 TLSv1;# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;# ssl_prefer_server_ciphers on;# location / {###}#}( 3 ) 将其修改为 (以下属性中ssl开头的属性与证书配置有直接关系,其它属性请结合⾃⼰的实际情况复制或调整) :server {listen 443;server_name localhost;ssl on;root html;index index.html index.htm;ssl_certificate cert/证书名称.pem;ssl_certificate_key cert/证书名称.key;ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;location / {root html;index index.html index.htm;}}保存退出。

Nginx同时支持Http和Https的配置详解

Nginx同时支持Http和Https的配置详解

Nginx同时⽀持Http和Https的配置详解现在的⽹站⽀持Https⼏乎是标配功能,Nginx能很好的⽀持Https功能。

下⾯列举⼀个配置同时⽀持Http和Https的功能。

需要注意的是:既然选择使⽤Https,就是为了保证通信安全,那么就没必要再⽤Http进⾏通信了。

在URL中还⽀持Http的⽅式,主要是为了⽤户不知道⽹站⽀持Https,还是使⽤Http的⽅式进⾏访问。

这时Nginx后台需要⾃动将Http请求转成Https的⽅式,这样就⼜能⽀持Http,⼜能保证通信安全了。

废话不多说,下⾯直接贴⼀个Nginx⽀持Http和Https的配置,是我的wordpres⽹站⽀持Https的配置,⼤家何以参考。

server{# 开启Httpslisten 443 ssl;# 配置证书,免费证书怎么申请这边就不多说了。

在晚上搜索腾讯云或者阿⾥云免费证书申请即可ssl_certificate /etc/nginx/conf.d/cert/4351595_www.xxx.pem;ssl_certificate_key /etc/nginx/conf.d/cert/4351595_www.xxx.key;ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;server_name xxx;index index.html index.htm index.php;root /data/wwwroot/wordpress;error_log /var/log/nginx/wordpress-error.log crit;access_log /var/log/nginx/wordpress-access.log;# 这边⽤于包含其他配置include extra/*.conf;include conf.d/rewrite/wordpress.conf;}# 将Http请求转化成Https请求server {listen 80;server_name xxx;rewrite ^/(.*) https://$server_name$request_uri? permanent;}到此这篇关于Nginx同时⽀持Http和Https的配置详解的⽂章就介绍到这了,更多相关Nginx同时⽀持Http和Https配置内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。

nginx配置http和https可同时访问方法

nginx配置http和https可同时访问方法
http访问的时候,报错如下:
400 Bad Request The plain HTTP requset was sent to HTTPS port. Sorry for the inconvenience. Please report this message and include the following information to us. Thank you very much!
为什么我已经从设备上安装了证书但是受信任的凭证列表还是空的https图片照样出不来
nginx配置 http和 https可同时访问方法
给nginx配置SSL证书之后,https可以正常访问,http访问显示400错误,nginx的配置如下:
server { listen 80 default backlog=2048; listen 443; server_name ; root /var/www/html; ssl on; ssl_certificate /usr/local/Tengine/sslcrt/.crt; ssl_certificate_key /usr/local/Tengine/sslcrt/.key; }
原因是http的请求被发送到https的端口上去了,所以才会出现这样的问题。 把ssl on;这行去掉,完美解决,修改后的配置如下:
server { listen 80 default backlog=2048; listen 443 ssl; server_name ; root /var/www/html; ssl_certificate /usr/local/Tengine/sslcrt/.crt; ssl_certificate_key /usr/local/Tengine/sslcrt/.Key; }

nginx使用ssl模块配置支持HTTPS访问的方法

nginx使用ssl模块配置支持HTTPS访问的方法

nginx使⽤ssl模块配置⽀持HTTPS访问的⽅法默认情况下ssl模块并未被安装,如果要使⽤该模块则需要在编译nginx时指定–with-http_ssl_module参数.需求:10.10.100.8 实验步骤:1.⾸先确保机器上安装了openssl和openssl-devel#yum install openssl#yum install openssl-devel2.创建服务器私钥,命令会让你输⼊⼀个⼝令:openssl genrsa -des3 -out server.key 1024 //⽣成私钥#因为以后要给nginx使⽤.每次reload nginx配置时候都要你验证这个PAM密码的.由于⽣成时候必须输⼊密码,你可以输⼊后再删掉。

3.创建签名请求的证书(CSR):openssl req -new -key server.key -out server.csr //⽣成证书颁发机构,⽤于颁发公钥4.在加载SSL⽀持的Nginx并使⽤上述私钥时除去必须的⼝令:cp server.key openssl rsa -in -out server.key //除去密码以便reload询问时不需要密码5.配置nginx最后标记证书使⽤上述私钥和CSR:openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt6.修改Nginx配置⽂件,让其包含新标记的证书和私钥:#vim /usr/local/nginx/conf/nginx.confhttp {include server/*.cn;}7.修改Nginx配置⽂件,让其包含新标记的证书和私钥:#vim /usr/local/nginx/server/server {listen 443; //监听端⼝为443server_name ;ssl on; //开启sslssl_certificate /etc/pki/tls/certs/server.crt; //证书位置ssl_certificate_key /etc/pki/tls/certs/server.key; //私钥位置ssl_session_timeout 5m;ssl_protocols SSLv2 SSLv3 TLSv1; //指定密码为openssl⽀持的格式ssl_ciphers HIGH:!aNULL:!MD5; //密码加密⽅式ssl_prefer_server_ciphers on; //依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码location / {root html; //根⽬录的相对位置index index.html index.htm;}}8.启动nginx服务器.#/usr/local/nginx/sbin/nginx -s reload //如果环境允许的话直接杀掉进程在启动nginx如果出现“[emerg] 10464#0: unknown directive "ssl" in /usr/local/nginx-0.6.32/conf/nginx.conf:74”则说明没有将ssl模块编译进nginx,在configure的时候加上“--with-http_ssl_module”即可如:[root@localhost nginx-1.4.4]# ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module9.测试⽹站是否能够通过https访问另外还可以加⼊如下代码实现80端⼝重定向到443server {listen 80;server_name ;#rewrite ^(.*) https://$server_name$1 permanent;rewrite ^(.*)$ https://$host$1 permanent;}过以下配置,可以设置⼀个虚拟主机同时⽀持HTTP和HTTPSlisten 80;listen 443 default ssl;同时⽀持80和443同时访问配置:server {listen 80 default backlog=2048;listen 443 ssl;server_name ;#ssl on; //注释掉ssl_certificate /usr/local/https/.crt;ssl_certificate_key /usr/local/https/.key;ssl_session_timeout 5m;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;ssl_prefer_server_ciphers on;Nginx 设置忽略favicon.ico⽂件的404错误⽇志(关闭favicon.ico不存在时记录⽇志)在 server { … }内添加如下信息.location = /favicon.ico {log_not_found off;access_log off;}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

nginx部署https协议配置

nginx部署https协议配置

Linux 下部署 nginx 的 https 协议配置1.预先准备域名的证书和私钥....2.解压源码安装包:tar zxf nginx‐1.10.1.tar.gz3.安装:./configure‐prefix=/usr/local/nginx‐with‐http‐ssl‐module--prefix:指定安装位置--with-http_ssl_module 编译 ssl 默认不编译4.编译:make && make installps:在正式库尽量不 make install ,除非系统中没有安装过 nginx 否则尽量使用 make 即可。

5.安装成功:启动:前往 nginx 目录下 sbin 目录./nginx启动后查看运行状态:ps aux | grep nginx停止:前往 nginx 目录下 sbin 目录./nginx ‐s stop重启:前往 nginx 目录下 sbin 目录./nginx ‐s reload6.新建证书和私钥文件夹命名 ssl:创建文件夹:前往 nginx 目录下 mkdir ssl7.将预先准备的证书及私钥放入创建的 ssl 文件夹中8.修改 nginx 配置文件 nginx.conf:进入/usr/local/nginx/conf/目录下打开 nginx.conf 文件编辑 vi nginx.conf , a 或 i 进入编辑模式找到↓除去 nginx 注释的 HTTPS server 配置内容,将 ssl_certificate (证书),ssl_certificate_key(私钥)后的地址指向 ssl 文件夹中存放的域名证书和私钥的地址。

修改完成后键盘敲击冒号:,wq 保存并退出,再重启 nginx 即可。

9:配置多域名 https 协议:将对应的多域名证书预先准备好,存放入 nginx 下 ssl 文件夹中,进入/usr/local/nginx/conf/目录下打开 nginx.conf 文件编辑vi nginx.conf , a 或 i 进入编辑模式,将原修改的 HTTPS server 复制粘贴至原修改的 HTTPS server 下,修改证书及私钥指向的域名证书位置即可。

nginx上通过ssl证书将http转发为https

nginx上通过ssl证书将http转发为https

nginx上通过ssl证书将http转发为https环境:阿⾥云linux,ngnix 1.16.0 ,ssl证书,XXXX.jar0.⾃⾏在阿⾥云上下载免费的ssl证书。

⾥⾯有2个⽂件。

key和pem后⾯要⽤到。

1.⾸先将项⽬在linux上跑起来,内部端⼝号是8082;java -jar XXXX.jar3.进⼊nginx安装⽬录。

我的安装⽬录是:/usr/local/nginx 找到conf并进⼊1)创建⼀个⽂件夹 mkdir cert,将0处的2个⽂件放在⾥⾯。

3.配置nginx:主要配置2个server,⼀个80,⼀个443。

80⽤于拦截请求,将请求改变为https并且转发给443,然后443在将域名和⾃⼰的8082项⽬挂钩。

完整配置:下⾯将修改的地⽅标红了。

#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024;}http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;}# HTTPS serverserver {listen 443 ssl;#⾃⼰的域名地址server_name jijiji.store;#ssl证书位置。

ssl_certificate cert/21.pem;ssl_certificate_key cert/21.key;ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_ciphers HIGH:!aNULL:!MD5;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;}结果:。

Nginx配置多个HTTPS域名的方法

Nginx配置多个HTTPS域名的方法

Nginx配置多个HTTPS域名的⽅法最近在玩微信⼩程序,⼿头有:1. ⼀台云服务器:CentOS 72. 多个⼀级域名开发测试过程中,因为某些原因,想要让⼿头的A、B域名同时指向云服务器的443端⼝,⽀持HTTPS。

Nginx⽀持TLS协议的SNI扩展(同⼀个IP上可以⽀持多个不同证书的域名),只需要重新安装Nginx,使其⽀持TLS即可。

安装Nginx[root]# wget /download/nginx-1.12.0.tar.gz[root]# tar zxvf nginx-1.12.0.tar.gz[root]# cd nginx-1.12.0[root]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module \--with-openssl=./openssl-1.0.1e \--with-openssl-opt="enable-tlsext"备注:在安装的过程中发现,云服务器的环境中缺少⼀些库,下载后,重新执⾏Nginx的./configure指令,具体操作如下:[root]# wget https:///project/pcre/pcre/8.35/pcre-8.35.tar.gz[root]# tar zxvf pcre-8.35[root]# yum -y install gcc[root]# yum -y install gcc-c++[root]# yum install -y zlib-devel[root]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module \--with-openssl=./openssl-1.0.1e \--with-openssl-opt="enable-tlsext" \--with-pcre=./pcre-8.35配置Nginx在购买域名的时候,如果域名提供商有免费的SSL证书,就直接⽤;如果没有的话,可以使⽤ Let's Encript ⽣成免费的CA证书。

Nginx如何配置Http、Https、WS、WSS?

Nginx如何配置Http、Https、WS、WSS?

Nginx如何配置Http、Https、WS、WSS?写在前⾯当今互联⽹领域,Nginx是使⽤最多的代理服务器之⼀,很多⼤⼚在⾃⼰的业务系统中都是⽤了Nginx作为代理服务器。

所以,我们有必要了解下Nginx对于Http、Https、WS、WSS的各项配置。

来来来,跟冰河⼀些学习Nginx,⼀起进阶,⼀起头秃~~Nginx配置Http⾸先,我们来聊聊Nginx如何配置Http,Nginx配置Http是Nginx最常⽤的功能之⼀。

在nginx.conf中配置相应的信息,如下所⽰。

upstream message {server localhost:8080 max_fails=3;}server {listen 80;server_name localhost;location / {root html;index index.html index.htm;#允许cros跨域访问add_header 'Access-Control-Allow-Origin' '*';#proxy_redirect default;#跟代理服务器连接的超时时间,必须留意这个time out时间不能超过75秒,当⼀台服务器当掉时,过10秒转发到另外⼀台服务器。

proxy_connect_timeout 10;}location /message {proxy_pass http://message;proxy_set_header Host $host:$server_port;}}Nginx配置Https如果业务对于⽹站的安全性要求⽐较⾼,此时可能就会在Nginx配置Https,具体配置信息可以参照如下⽅式进⾏。

upstream message {server localhost:8080 max_fails=3;}server {listen 443 ssl;server_name localhost;ssl_certificate /usr/local/nginx-1.17.8/conf/keys/binghe.pem;ssl_certificate_key /usr/local/nginx-1.17.8/conf/keys/binghe.key;ssl_session_timeout 20m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;ssl_verify_client off;location / {root html;index index.html index.htm;#允许cros跨域访问add_header 'Access-Control-Allow-Origin' '*';#跟代理服务器连接的超时时间,必须留意这个time out时间不能超过75秒,当⼀台服务器当掉时,过10秒转发到另外⼀台服务器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Nginxssl配置https文档生成证书
可以通过以下步骤生成一个简单的证书:
首先,进入你想创建证书和私钥的目录,例如:
1.$ cd /usr/local/nginx/conf
创建服务器私钥,命令会让你输入一个口令:
1.$ opensslgenrsa -des3 -out server.key1024
其中server.key:ssladmin;(可自定义)
创建签名请求的证书(CSR):
1.$ opensslreq -new -key server.key -out server.csr
此处输入的国家、省份、城市、组织、单位、邮箱根据实际情况输入。

完成后会生成server.csr 文件
在加载SSL支持的Nginx并使用上述私钥时除去必须的口令:
1.$ cpserver.key
2.$ opensslrsa -in -out server.key
配置nginx
最后标记证书使用上述私钥和CSR:
1.$ openssl x509 -req -days 365 -in server.csr -signkeyserver.key -out server.crt
修改Nginx配置文件,让其包含新标记的证书和私钥:
1.server {
2. server_name10.100.6.235;
3. listen 443;
4. ssl on;
5. ssl_certificate /usr/local/nginx/conf/server.crt;
6. ssl_certificate_key /usr/local/nginx/conf/server.key;
7.}
重启nginx。

这样就可以通过以下方式访问:
https://10.100.6.235
另外还可以加入如下代码实现80端口重定向到443 1.server {
2.listen 80;
3.server_name10.100.6.235;
4.rewrite ^(.*) https://$server_name$1 permanent;
5.}。

相关文档
最新文档