‘壹’ nginx怎么配置ssl可以即允许http访问也允许https访问
方法/步骤
给nginx配置SSL证书之后,https可以正常访问,http访问显示400错误,nginx的配置如下:
server {
listen 80 default backlog=2048;
listen 443;
server_name wosign.com;
root /var/www/html;
ssl on;
ssl_certificate /usr/local/Tengine/sslcrt/ wosign.com.crt;
ssl_certificate_key /usr/local/Tengine/sslcrt/ wosign.com .key;
}
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!
说是http的请求被发送到https的端口上去了,所以才会出现这样的问题。
2
server {
listen 80 default backlog=2048;
listen 443 ssl;
server_name wosign.com;
root /var/www/html;
ssl_certificate /usr/local/Tengine/sslcrt/ wosign.com.crt;
ssl_certificate_key /usr/local/Tengine/sslcrt/ wosign.com .Key;
}
把ssl on;这行去掉,ssl写在443端口后面。这样http和https的链接都可以用,完美解决。
‘贰’ nginx怎么代理花生壳的https请求
代理https需要配置SSL加入到nginx配置中即可。
代理https需要配置SSL,生成密钥,使用openssl生成密钥privatekey,长度为1024,使用密钥生成证书serverpem,证书信息可以随便填或者留空,只有CommonName要根据你的域名填写,即填写nginx所在服务器的IP或域名,加入到nginx配置中,启动nginx即可。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP、POP3、SMTP服务器,由伊戈尔赛索耶夫开发。其将源代码以类BSD许可证的形式发布,并且因其稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。其特点是占有内存少,并发能力强。
‘叁’ nginx一个端口http和https同时访问
HTTPS标准端口443,HTTP标准端口80;所以不能共享一个端口。
一、什么是HTTPS
HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版。HTTPS主要作用是:
(1)对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全;
(2)对网站服务器进行真实身份认证。
二、什么是HTTP
HTTP是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议。HTTP是采用明文形式进行数据传输,极易被不法分子窃取和篡改。
三、HTTPS和HTTP的区别是什么
1、HTTPS是加密传输协议,HTTP是明文传输协议;
2、HTTPS需要用到SSL证书,而HTTP不用;
3、HTTPS比HTTP更加安全,对搜索引擎更友好,利于SEO;
4、 HTTPS标准端口443,HTTP标准端口80;
5、 HTTPS基于传输层,HTTP基于应用层;
6、 HTTPS在浏览器显示绿色安全锁,HTTP没有显示;
总的来说HTTPS比HTTP更加安全,能够有效的保护网站用户的隐私信息安全,这也是为什么现在的HTTPS网站越来越多。
SSL证书就是遵守SSL协议,由受信任的数字证书颁发机构CA(如:沃通CA)在验证服务器身份后颁发的一种数字证书。
‘肆’ nginx怎么把http改成https
服务器+域名+SSL数字证书=HTTPS
nginx升级HTTPS流程:
普通的HTTP网站搭建完毕,并且可以访问。
确定升级HTTPS的域名。
Gworg申请后根据Gworg要求完成SSL证书认证。
大约15分钟获得SSL数字证书。
配置到nginx服务器就可以实现HTTPS:网页链接
解决办法:如果虚拟主机(空间)不支持,也可以让Gworg提供接入,只需解析域名就可以。
‘伍’ 如何设置nginx配置https
Nginx安装SSL证书:https://www.gworg.com/ssl/107.html
Nginx 自动跳转到HTTPS:https://www.gworg.com/ssl/167.html
注意:安装防火墙需要设置允许443端口或关闭防火墙,如果本地服务器安装安全狗的,请允许443端口。如果使用CDN,请关闭CDN后配置,因为普通CDN不支持SSL服务。
‘陆’ 如何在Nginx中添加SSL证书以支持HTTPS协议访问
Gworg申请SSL证书,使用Nginx类型SSL证书配置就可以了。
server {
listen 80;
listen 443 ssl;
server_name www.gworg.cn;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_certificate /etc/ssl/yourdomain.com.crt;
ssl_certificate_key /etc/ssl/yourdomain.com.key;
ssl_prefer_server_ciphers on;
#自动跳转到HTTPS (可选)
if ($server_port = 80) {
rewrite ^(.*)$ https://$host$1 permanent;
}
location / {
root /home/web/;
index index.php;
}
‘柒’ 如何为nginx配置https
默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译时指定–with-http_ssl_mole参数,安装模块依赖于OpenSSL库和一些引用文件,通常这些文件并不在同一个软件包中。通常这个文件名类似libssl-dev。
生成证书
可以通过以下步骤生成一个简单的证书:
首先,进入你想创建证书和私钥的目录,例如:
$ cd /usr/local/nginx/conf
创建服务器私钥,命令会让你输入一个口令:
$ openssl genrsa -des3 -out server.key 1024
创建签名请求的证书(CSR):
$ openssl req -new -key server.key -out server.csr
在加载SSL支持的Nginx并使用上述私钥时除去必须的口令:
$ cp server.key server.key.org
$ openssl rsa -in server.key.org -out server.key
配置nginx
最后标记证书使用上述私钥和CSR:
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
修改Nginx配置文件,让其包含新标记的证书和私钥:
server {
server_name YOUR_DOMAINNAME_HERE;
listen 443;
ssl on;
ssl_certificate /usr/local/nginx/conf/server.crt;
ssl_certificate_key /usr/local/nginx/conf/server.key;
}
重启nginx。
这样就可以通过以下方式访问:
https://YOUR_DOMAINNAME_HERE
另外还可以加入如下代码实现80端口重定向到443IT人乐园
server {
listen 80;
server_name ww.centos.bz;
rewrite ^(.*) https://$server_name$1 permanent;
}
‘捌’ 如何配置https nginx
cd /etc/nginx
vim nginx.conf
#
# HTTPS server configuration
#
server {
listen 443;
server_name 本机的IP地址;
ssl on;
ssl_certificate /etc/nginx/server.crt;
ssl_certificate_key /etc/nginx/server.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 / {
#root html;
#index testssl.html index.html index.htm;
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_pass http://IP地址/ssl/;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
重启nginx,在浏览器输入:https://IP地址 会跳转到 http://IP地址/ssl/ 这个地址(后期调整为webservice接口地址即可)
三、受浏览器信任的StartSSL免费SSL证书:
跟VeriSign一样,StartSSL(网址:http://www.startssl.com,公司名:StartCom)也是一家CA机构,
它的根证书很 久之前就被一些具有开源背景的浏览器支持(Firefox浏览器、谷歌Chrome浏览器、苹果Safari浏览器等)。
四、项目需要,将访问目录 \services\ 由http访问 重定向到 https (解决方法:nginx rewrite 加上 location 方式实现)
location ~ /services/.*$ {
if ($server_port ~ "^80$"){
set $rule_0 1$rule_0;
}
if ($rule_0 = "1"){
rewrite /(.*) https://IP地址/$1 permanent; break;
}
}
1
2
3
4
5
6
7
8
五,配置结束上传以后用nginx -t 测试下配置无误 就reload一下nginx服务 检查443端口是否在监听
/usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful (显示表示配置文件没有错误)
service nginx reload (重新加载nginx服务)
netstat -lan | grep 443 (查看443端口)
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN (有看到这一行 就表示HTTPS已经在工作了)
1
2
3
4
5
6
7
‘玖’ 如何在Nginx中添加SSL证书以支持HTTPS协议访问
CA证书就是文件youdomain.crt和私钥文件youdomain.key
请确认所收到的证书文件是您需要的陕西CA证书。
二、安装服务器证书
1. 配置ssl证书
打开nginx安装目录下conf目录中的nginx.conf文件,找到被注释掉的server 配置,进行修改:
server {
listen 443 ssl;
server_name www.yourdomian.com;
ssl on;
ssl_certificate /usr/local/nginx/conf/youdomain.crt; #证书公钥
ssl_certificate_key /usr/local/nginx/conf/youdomain.key; #证书私钥
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!3DES:!aNULL:!eNULL;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
把服务器证书youdomain.crt和私钥youdomain.key上传到配置文件指向的目录/usr/local/nginx/conf/(具体文件路径可以自行指定)
保存退出,并重起nginx配置nginx -s reload后通过https方式访问您的站点,测试站点证书的安装配置。
三、访问测试
服务器若部署了SSL证书,浏览器访问时将出现安全锁标志;
备份和恢复
1. 备份服务器证书
备份服务器证书私钥文件youdomain.key,服务器证书文件youdomain.crt,即可完成服务器证书的备份操作。
2. 恢复服务器证书
参照步骤“三、安装服务器证书”即可完成恢复操作。
‘拾’ 如何设置nginx使用http和https都可以访问
服务器安装SSL证书就可以实现HTTPS,不配置强制HTTPS访问就可以的,这种情况下就已经都可以打开了!
server{
listen80;
listen443ssl;
server_namewww.gworg.cn;
ssl_protocolsTLSv1.2TLSv1.1TLSv1;
ssl_certificate/etc/ssl/yourdomain.com.crt;
ssl_certificate_key/etc/ssl/yourdomain.com.key;
ssl_prefer_server_cipherson;
location/{
root/home/web/;
indexindex.php;
}
}