首页 > 系统相关 >nginx 配置https,并适配微信小程序

nginx 配置https,并适配微信小程序

时间:2024-04-26 18:23:22浏览次数:31  
标签:证书 适配 ssl cer nginx 微信 com example

前言

最近接手了个小程序项目,但是由于交接文档不完善,于昨天上午域名证书过期,导致无法调用后端服务,短暂(五分钟左右)影响了小程序的使用,也算是一个不大不小的事故吧[手动捂脸笑...]

解决过程

临时处理

发现是证书过期导致的问题,立马就上阿里云申请新的证书,五分钟左右,证书就签发下来了,还是挺快的,替换证书之后,服务恢复正常,但是免费的证书只有3个月的有效期,之前是1年,到期之后需要再次申请并手动替换证书,比较麻烦,于是就在想有没有更好的自动化的方法,经过一番摸索,发现是有方法的。

最终解决

替换 let's Encrypt 的证书,并配置自动更新

  • 之前的文章 https证书自动续期 介绍了如何使用 let's Encrypt 申请并且配置自动更新证书,也可以访问其 官网 了解其他用法,不清楚的朋友可以看看;

  • 自动更新的原理大概是:证书默认3个月有效期,每天检查证书是否过期,在离过期时间前一个月,自动申请新的证书并替换;

  • example.com 为例 Let's Encrypt 签发下来的各个文件作用:

    文件名 作用
    ca.cer 中间证书
    fullchain.cer 证书链
    example.com.cer 证书文件
    example.com.conf acme.sh 工具自动安装证书配置文件
    example.com.csr 证书签名请求(Certificate signing request),包含证书持有人的信息,如:国家,邮件,域名等信息
    example.com.csr.conf 证书签名请求配置
    example.com.key 单独存放的 cer 格式的密钥,一般保存为 *.key配置nginx

配置nginx

server {
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;

    ssl_certificate /etc/nginx/ssl/lets-encrypt/example.com_ecc/fullchain.cer; #这里的ssl是自定义文件夹 
    ssl_certificate_key /etc/nginx/ssl/lets-encrypt/example.com_ecc/example.com.key; #这里的ssl是自定义文件夹
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  10m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }

	# root /var/www/html;
	root /home/hy/www/html/wechat-mini-program;

	# Add index.php to the list if you are using PHP
	index index.html index.htm index.nginx-debian.html;

	server_name _;

	location / {
		try_files $uri $uri/ =404;
	}
}
  • ssl_certificate 服务器证书的文件路径

    注意注意,这里很重要!很重要!很重要!重要的事情说三遍:

    ssl_certificate 这里配置的证书是 fullchain.cer ,而不是 example.com.cerexample.com.cer 浏览器是能正常的,但是微信小程序端不认这个证书,因为证书链不完整而不受信任,必须是使用 fullchain.cer

  • ssl_certificate_key 服务器证书对应的私钥文件

  • ssl_session_cache shared:SSL:1m; 配置SSL会话缓存的类型和大小

    这里使用的是共享内存区域(shared)来存储SSL会话参数,每个会话大约占用1MB的空间。会话缓存可以加速后续的SSL握手过程,因为复用之前的会话参数可以减少计算量。

  • ssl_session_timeout 10m 设置SSL会话的超时时间

    这里配置为10分钟。如果一个SSL会话在10分钟内没有任何活动,服务器将销毁这个会话,用户将需要重新进行SSL握手来建立新的会话。

  • ssl_ciphers HIGH:!aNULL:!MD5 指定服务器允许的加密算法(密码套件)

    1. 这里配置表示使用高强度的加密算法,排除不支持认证的算法(aNULL)和MD5哈希算法,因为它们被认为是不安全的。
  • ssl_prefer_server_ciphers on

    这个指令告诉Nginx服务器在SSL握手时优先使用服务器端支持的加密算法,而不是客户端优先。这可以确保使用更安全的加密算法,因为服务器通常配置为使用更强的加密设置。

结语

配置完 let's encryptnginx 后,重启 nginx 服务就能正常使用了,而且不用再关注证书是否过期了,只要 let's encrypt服务不出问题,可以永久使用,亲测有效,最重要的是:ssl_certificate 这里配置的证书是 fullchain.cer再次提醒,希望这篇文章能帮助遇到相同问题的朋友。

标签:证书,适配,ssl,cer,nginx,微信,com,example
From: https://www.cnblogs.com/cat-fish-h2/p/18160645

相关文章

  • NGINX error_page
    背景网络架构中需要遇到apisix,想做个apisix访问出错的兜底方案nginx配置其中http://11.11.11.11:9080是apisix访问地址server{ listen80; server_namesfimplat; indexindex.htmlindex.htm; root/app/sfimplat_micro/web; #charsetkoi8-r; access_log......
  • Nginx 源码安装
     Nginx官网:https://nginx.org参考:Nginx配置常用参数梳理https://www.jb51.net/server/285538k8k.htmnginx配置参数详解https://blog.csdn.net/u013286192/article/details/136418472Nginx配置详解https://www.runoob.com/w3cnote/nginx-setup-intro.html查看nginx开启......
  • 通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题
    通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题用nginx来做webserver的时,上传大文件时需要特别注意client_max_body_size这个参数,否则会中断在nginx的请求中,在php中是无法记录到访问的. 一般上传大文件流程: 首先修改php.ini文件: 参数设置说明 fi......
  • nginx高级篇之location高级实战
    nginxlocation高级实战location是nginx的核心重要功能,可以设置网站的访问路径,一个webserver会有多个路径,那么location就得设置多个。Nginx的locaiton作用是根据用户请求的URI不同,来执行不同的应用。针对用户请求的网站URL进行匹配,匹配成功后进行对应的操作。1.语法介绍Sy......
  • nginx高性能负载均衡集群
    高性能负载均衡集群一、集群是什么简单地说,集群就是指一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器。这些服务器之间可以彼此通信,协同向用户提供应用程序,系统资源和数据,并以单一......
  • nginx高级篇之基于IP的访问限制
    一、基于IP的访问限制官网http://nginx.org/en/docs/http/ngx_http_access_module.html1.配置语法句法:allowaddress|CIDR|unix:|all;默认:—语境:http,server,location,limit_except允许访问指定的网络或地址。如果指定了特殊值unix:(1.5.1),则允许访......
  • GatewayWorker 配置 WSS 利用 nginx 代理 wss
    首先,本地开发的测试一般都能通信成功而且,如果客户端为【http】网络协议的网站,那么js代码基本就是类似——varws=newWebSocket("ws://47.104.110.54:8283");的连接方式出错率是很低的,基本不做赘述最大的难点,个人认为是WSS服务配置…【操作环境】系统:......
  • Nginx 配置文件 nginx.conf
    #帮助限制Nginx进程的权限,从而减少系统遭受恶意攻击的风险#通常,出于安全考虑,推荐不使用root用户运行网络服务#user<username>[groupname];#设置Nginx将启动的工作进程数目(默认为1)#worker_processes7;#可以填数字#worker_processesauto;#auto代表......
  • 2023最新!nginx安装配置保姆级教程
    2023最新!nginx安装配置保姆级教程这篇文章了参考了这位的教程:https://blog.csdn.net/qq_36838700/article/details/129971765导航目录2023最新!nginx安装配置保姆级教程一、nginx下载二、编译安装nginx安装pcre安装openssl、zlib、gcc依赖安装nginx二、拓展一、nginx下载......
  • 利用云服务器搭建自己的微信聊天机器人
    本次部署使用的是LinkAI提供的接口,不需要魔法选择比较简单的docker部署,其他的部署方式可以参考官方文档:https://docs.link-ai.tech/cow/quick-start0、前置租一台云服务器,因为是调用的其他平台的大模型api,所以配置不用太高注册并登陆LinkAI平台(https://link-ai.tech/portal),在......