nginx 80端口配置https自签名证书

注意事项

配置完成后curl检测没有问题,浏览器显示400 Bad Request的问题。
在nginx文件下的fastcgi_params文件末尾增加配置
fastcgi_param HTTPS $fastcgi_https;
然后再配置文件顶部增加这段配置(注意不要放到server{}里面)
map $scheme $fastcgi_https {
default off;
https on;
}

nginx配置文件
map $scheme $fastcgi_https {
  default off;
  https on;
}

server
{
	listen 80;
	listen 443 ssl http2;
	server_name menglin.fast;

	root 项目路径;
	index	index.php	

	ssl_client_certificate /etc/nginx/ssl_key/menglin.fast.crt;#双向认证
	access_log /var/log/nginx/menglin1042_access.log;
	error_log /var/log/nginx/menglin1042_error.log;

	#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
	#error_page 404/404.html;
	#HTTP_TO_HTTPS_START
	if ($server_port !~ 443){
		rewrite ^(/.*)$ https://$host$1 permanent;
	}
	
	#HTTP_TO_HTTPS_END
	ssl_certificate /etc/nginx/ssl_key/server.crt;#配置证书位置
	ssl_certificate_key /etc/nginx/ssl_key/server.key;#配置秘钥位置
	ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
	ssl_prefer_server_ciphers on;
	ssl_session_cache shared:SSL:10m;
	ssl_session_timeout 10m;
	error_page 497  https://$host$request_uri;

	location / {
		if (!-e $request_filename) {
			rewrite  ^(.*)$  /index.php?s=/$1  last;
			break;
		}
		#auth_basic "登录认证";
		#auth_basic_user_file /etc/nginx/pass_file;
		#过滤
		#allow 127.0.0.1;
		#deny all;
	}

	#路由跳转
	location ~ htyml{
                rewrite  ^(.*)$  /uPHzGEcadU.php  permanent;
        }
        
	location ~ api.html{
                index api.html;
		#proxy_pass http://127.0.0.1:1080;
	}

	#缓存
#	location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
#		expires      30d;
#		error_log off;
#		access_log /dev/null;
#	}
#	location ~ .*\.(js|css)?$ {
#		expires      12h;
#		error_log off;
#		access_log /dev/null; 
#	}

	#错误页面
	error_page   500 502 503 504  /50x.html;
        error_page   404        /404.html;
        location = /50x.html {
            root   /var/www/nginx/error_nginx;
        }
        location = /404.html {
           root   /var/www/nginx/error_nginx;
        }

	#配置
	location ~ \.php(.*)$ {
		#root;
		#fastcgi_pass   127.0.0.1:9000;
		#fastcgi_index  index.php;

	        fastcgi_index index.php;
		fastcgi_pass  unix:/var/run/php/php7.2-fpm.sock;

	        #为了支持pathinfo 增加如下设置
		#下面两句是给fastcgi权限,可以支持 ?s=/module/controller/action的url访问$
		fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
		fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

		#下面两句才能真正支持 index.php/index/index/index的pathinfo模式
		fastcgi_param  PATH_INFO  $fastcgi_path_info;
		fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
		#fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/:php执行路径";
		include        fastcgi_params;
    }

   client_max_body_size 50M;
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要在Nginx配置HTTPS,您需要为您的网站获取SSL证书。虽然您可以使用自签名证书来测试HTTPS,但是在生产环境中,您应该从受信任的证书颁发机构(CA)获取证书。 一旦您获得了证书,您需要将其安装在Nginx服务器上。以下是一个简单的步骤: 1. 将证书和私钥文件上传到服务器上。 2. 在Nginx配置文件中指定证书和私钥的路径: ``` server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/cert.crt; ssl_certificate_key /path/to/cert.key; #其他配置 } ``` 3. 重新加载Nginx配置文件以使更改生效: ``` sudo systemctl reload nginx ``` 现在您的网站应该已经配置HTTPS。 ### 回答2: Nginx是一款高性能的Web服务器软件,可以通过配置实现对HTTPS的支持,无需使用证书。 要在Nginx配置HTTPS,需要以下步骤: 1. 安装Nginx服务器,并确保其可以正常运行。 2. 修改Nginx配置文件(一般为nginx.conf),找到监听端口的配置项(默认为80),将其修改为443,即将HTTP的默认端口修改为HTTPS的默认端口。 3. 配置SSL/TLS协议,将配置ssl on添加到监听端口的配置项中,表示开启SSL/TLS功能。 4. 为了保证安全,需要生成一个自签名证书,用于加密HTTPS传输的数据。可以使用OpenSSL等工具生成自签名证书,并将证书保存到指定的位置。 5. 配置SSL证书,将证书的路径和密钥文件指定到Nginx配置文件中。在配置ssl_certificate中指定证书路径,ssl_certificate_key指定密钥文件路径。 6. 重新启动Nginx服务器,使配置生效。 这样,Nginx就成功配置了无证书HTTPS支持。当访问服务器时,Nginx会通过SSL/TLS协议实现数据的加密传输,保证数据的安全性。但由于使用的是自签名证书,浏览器会提示用户该网站的证书不受信任,用户需要手动点击继续访问。 需要注意的是,无证书HTTPS配置仅适用于开发环境或个人使用,对于生产环境或重要的网站,建议使用由可信任的证书机构颁发的正式证书,以确保数据的安全性和访问的可信任性。 ### 回答3: 在配置nginx证书https访问时,需要进行以下步骤: 1. 首先,确保已经安装了nginx服务器并成功启动。 2. 打开nginx配置文件(默认路径为/etc/nginx/nginx.conf),找到需要启用https的server块。 3. 在server块内添加以下配置内容: ``` listen 443 ssl; ssl_certificate none; ssl_certificate_key none; ``` 其中,listen 443 ssl表示该服务器监听443端口,并启用SSL加密协议;ssl_certificate和ssl_certificate_key设置为none表示不使用证书进行加密。 4. 配置完毕后,保存并退出配置文件。 5. 重启nginx服务,使配置生效。在终端中输入以下命令: ``` sudo service nginx restart ``` 其中,sudo表示以管理员权限执行命令。 6. 确保防火墙开放了443端口,允许外部访问。 配置完成后,即可通过https方式访问nginx服务器,但由于没有证书,浏览器将会提示网站存在不安全的连接。这种配置方式适用于个人测试、内部网站以及临时应用等不需要严格的安全认证的情况。 总结:以上是nginx证书配置https的步骤,通过修改nginx配置文件,使其监听443端口并启用SSL加密协议,即可实现https访问。但需要注意的是,由于没有证书,浏览器会提示网站不安全,所以该方式只适用于一些非正式、测试或临时使用的场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wsswm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值