centos下,nginx服务器,我用https访问php页面为啥总提示下载。http可以访问php页面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos下,nginx服务器,我用https访问php页面为啥总提示下载。http可以访问php页面相关的知识,希望对你有一定的参考价值。

参考技术A 提示下载什么,你服务器端部署了SSL证书吗?可以去整一个免费的SSL证书试试,比如startssl免费证书,wosign免费证书等。追问

如果用http访问index.php就可以,但是https就出现上面的内容

追答

你在弹出的对话框,前面那个选项,打勾,然后保存试试。

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。

以上是关于centos下,nginx服务器,我用https访问php页面为啥总提示下载。http可以访问php页面的主要内容,如果未能解决你的问题,请参考以下文章

Django部署(CentOS,Nginx)

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

centos7+nginx+python3+django+uwsgi配置

windows下用nginx配置https服务器

CentOS 6下Nginx反向代理配置

CentOS7下搭建FastDFS+Nginx实现静态图片服务器