Centos7下nginx配置https 在互联网信息安全日益重要的今天,https协议几乎成了标配,部分浏览器如果遇到非https的服务器会拒绝访问,有的平台也要求app的服务器要用https协议(如苹果、微信小程序)。 下面是个人配置https的笔记,先完整记录下来,不然到时遇到问题又各种百度。 一、步骤1 配置nginx 假如你已经申请到了https证书,而且有nginx下的版本,通常是两个文件,一个是 .key 后缀的文件,为证书的私钥,另一个是 .crt 后缀的文件,为证书的公钥。 nginx.conf 配置如下:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
server { listen 443 ssl; server_name www.server.com default_server; #1 ssl_certificate ssl/bundle.crt; #2 ssl_certificate_key ssl/cert.key; #3 ssl_session_cache shared:SSL:1m; 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; } |
把#1所在行的 www.sever.com 改成你的域名(注意:这个域名是你申请证书时用的域名)。 把#2所在行的 ssl/bundle.crt* 改成你实际文件的路径,如果是相对路径,那么是相对于nginx的conf目录的路径。 把#3所在行的 ssl/cert.key* 改成你实际文件的路径,如果是相对路径,那么是相对于nginx的conf目录的路径。 如果要让用户用http协议访问时自动跳转https,则还需加上如下配置:
|
1 2 3 4 5 |
server { listen 80; server_name www.server.com; rewrite ^(.*)$ https://www.server.com; } |
就是一个url重写而已。 注意要把 www.server.com 改成你实际的主机名。 配置完后,用如下命令
|
1 |
nginx -t |
测试下配置文件有没有错误。 如果没有错误,用如下命令
|
1 |
nginx -s reload |
重启nginx,然后用浏览器测试下用https协议能否正常访问服务器。 如果不能访问,请确认下证书路径有没有问题,如果没有,请看下面的 步骤2。 二、步骤2 开启服务器的防火墙 需要该步骤是因为服务器的防火墙没有开通443端口。 centos7 下用的防火墙是firewalld,配置防火墙用命令firewall-cmd。 开通443端口
|
1 |
firewall-cmd --zone=public --add-port=443/tcp --permanent |
确认是否开通
|
1 |
firewall-cmd --list-ports |
如果可以看到443/tcp字样就说明开通了 重新加载下防火墙配置
|
1 |
firewall-cmd --reload |
执行完该步骤,大多数服务器应该可以正常用https协议访问。 如果不能,如果你用的是阿里云服务器,请看步骤3。如果是其它服务器,请自行百度。 步骤3 在安全组规则开通443端口 需要该步骤的原因是因为云服务器的安全组规则上没有开通相关的端口。 做完步骤3,应该可以用https了。如果还不能,提交工单问技术人员吧。或者再检查下步骤1与步骤2有没有做到位。 from:https://blog.csdn.net/chunyuan314/article/details/77369110
View Details原文:http://blog.csdn.net/wzy_1988/article/details/8549290 需求简介 基于nginx搭建了一个https访问的虚拟主机,监听的域名是test.com,但是很多用户不清楚https和http的区别,会很容易敲成http://test.com,这时会报出404错误,所以我需要做基于test.com域名的http向https的强制跳转 我总结了三种方式,跟大家共享一下 nginx的rewrite方法 思路 这应该是大家最容易想到的方法,将所有的http请求通过rewrite重写到https上即可 配置 server { listen 192.168.1.111:80; server_name test.com; rewrite ^(.*)$ https://$host$1 permanent; } 搭建此虚拟主机完成后,就可以将http://test.com的请求全部重写到https://test.com上了 nginx的497状态码 error code 497 497 – normal request was sent to HTTPS 解释:当此虚拟站点只允许https访问时,当用http访问时nginx会报出497错误码 思路 利用error_page命令将497状态码的链接重定向到https://test.com这个域名上 配置 server { listen 192.168.1.11:443; #ssl端口 listen 192.168.1.11:80; #用户习惯用http访问,加上80,后面通过497状态码让它自动跳到443端口 server_name test.com; #为一个server{……}开启ssl支持 ssl on; #指定PEM格式的证书文件 ssl_certificate /etc/nginx/test.pem; #指定PEM格式的私钥文件 ssl_certificate_key /etc/nginx/test.key; #让http请求重定向到https请求 error_page 497 https://$host$uri?$args; } index.html刷新网页 思路 上述两种方法均会耗费服务器的资源,我们用curl访问baidu.com试一下,看百度的公司是如何实现baidu.com向www.baidu.com的跳转 可以看到百度很巧妙的利用meta的刷新作用,将baidu.com跳转到www.baidu.com.因此我们可以基于http://test.com的虚拟主机路径下也写一个index.html,内容就是http向https的跳转 index.html [html] view plaincopyprint? <html> <meta http-equiv="refresh" content="0;url=https://test.com/"> </html> nginx虚拟主机配置 server { listen 192.168.1.11:80; server_name test.com; location / { #index.html放在虚拟主机监听的根目录下 root /srv/www/http.test.com/; } #将404的页面重定向到https的首页 error_page 404 https://test.com/; } 后记 上述三种方法均可以实现基于nginx强制将http请求跳转到https请求,大家可以评价一下优劣或者根据实际需求进行选择。 from:http://www.cnblogs.com/yun007/p/3739182.html
View Details上环境:windows server 2016 IIS 10 需求:访问HTTP 跳转到HTTPS 软件:http://download.microsoft.com/download/E/A/9/EA9F19BC-0EEB-49C9-B32D-56852BBE56DA/rewrite_amd64_zh-CN.msi 配置如下: 1.选择需要配置的站点,先绑定域名http 跟https 域名: 2.打开URL 重写添加规则: 3.编辑规则: 以上配置完成,便可以测试域名,自动跳转; from:https://www.cnblogs.com/itusye/p/7927787.html
View Details打开下载的ueditor目录中ueditor.config.js文件,找到如下标签白名单代码 原文地址:侯哥小博 http://37blog.com/?p=61 在任意处加上如下代码,如果你所添加的iframe中还包含其它标签,只需要在数组中继续添加元素即可。
|
1 |
iframe: ['frameborder','src','width','height'], |
from:https://blog.csdn.net/houbin99999/article/details/72965385
View Details