首页 > 其他分享 >记录第一次http转https

记录第一次http转https

时间:2024-06-06 13:58:21浏览次数:20  
标签:index http https 记录 ssl key var

之前小程序用的后端是咸虾米老师的,昨天写小程序就想着自己又不是不会写?用自己的吧,然后发现微信小程序要域名是https协议的。看来又得学新东西了Q-Q

查了下大概要这么几个步骤

1.购买ssl证书

2.通过naginx配置ssl证书

3.将以前的http重定向到https

那就从第一步开始,应该是这个吧

这边我登录域名控制台发现DNS解析记录好像是自动添加到了里面

然后应该是要等等吧~

哦,验证了刷新就可以了。发现已经签发了

然后就可以下载证书了,这边我用的服务器是nginx,那就下载这个版本的

在nginx的目录下创建cert目录,将crt和key文件放入。并将key文件改名为a.key和a.pem

调整nginx配置

nginx安装ssl模块

在调整nginx配置的时候产生了报错

可以看到监听有问题,此处把listen 443和ssl on改为listen 443 ssl

然后报错a.pem文件找不到。搜了很多方法也没解决,然后自己琢磨看报错发现路径不对,把cert文件投放到conf文件中需要

server {
	listen 443 ssl;
	server_name localhost;
	root html;
	index index.html index.htm;
	
	ssl_certificate   cert/a.pem;
	ssl_certificate_key  cert/a.key;
	
	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;
	location / {
	    root html;
	    index index.html index.htm;
	}
}

重启服务器

突然发现宝塔可以在网页那直接配置。。这边我试了下好像可以

但是登录进去发现我的接口全部挂了。横尸遍野???

搜到个方法是在网站加

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

有效是有效。现在发送的请求是变成https了,但我的接口不是https??

var fs = require('fs');
const express = require('express')
var path = require('path');
var http = require('http');
var https = require('https');

var privateKey  = fs.readFileSync('sslcert/a.key', 'utf8');
var certificate = fs.readFileSync('sslcert/a.pem', 'utf8');
var credentials = {key: privateKey, cert: certificate};

const app = express()
var httpServer = http.createServer(app);
var httpsServer = https.createServer(credentials, app);

var cors = require('cors')
app.use(cors())






httpServer.listen(3000);
httpsServer.listen(3001);

因此我对我本来的接口做了一个调整,改为了https。

然后用postapi测试没问题。实际还是会报错

确认报错原因为之前用的为IP地址,用了ssl那么得用域名,因为证书是颁发给域名的

将原来前端的baseurl更改为了域名,访问成功了。

检查了一下整体发现还是有点问题,发现有些调用的外部的http接口也变成了https导致失败,寻思了下还是将之前的mata删了修改baseurl~

之前的反向代理报错404,说明路径肯定出错了。排查了一下原因是上边服务器对443端口的设定还没有完全完成,需要在里面重新完成之前的重定向,并且需要把servername更改为自己的域名,这样在执行https//www......./代理参数时,才可以完成跳转~

做一下总结,大概做了这些动作

1.购买ssl证书绑定域名

2.下载证书到后端文件和服务器文件与网站

3.后端配置https

4.服务器配置ssl,并完善重定向

5.前端请求更改为https

参考博文:http升级为https全过程(通过nginx安装SSL证书)-CSDN博客

参考博文:Express使用Https服务器-CSDN博客

标签:index,http,https,记录,ssl,key,var
From: https://blog.csdn.net/qq_52368602/article/details/139463514

相关文章

  • HttpContext.Current 和 IHttpContextAccessor 的区别
    "HttpContext.Current"和"IHttpContextAccessor"是两个不同的方式,用来访问当前的HTTP上下文(即与HTTP请求相关的信息,如请求、响应、用户、会话等)。"HttpContext.Current"定义:"HttpContext.Current"是在ASP.NET(旧版.NETFramework)中用于访问当前HTTP上下文的静态属......
  • nginx泛域名http(80)强制跳转https(443)
    nginx泛域名http(80)强制跳转https(443)随着chrome浏览器在地址栏开始标注网站『不安全』的提示开始,各大小网站都开始从http转为https了,并且都更注重网站的安全了。然页我们之前的很多站点都是基于http开发的,如果全部改造成https,必然是很大的工作量,幸好有第三方的工具可以为我们......
  • 访问托管在运行 IIS 的服务器上的网站时出现 HTTP 错误 405.0
    问题:客户端请求部署在IIS中的APS.NETCOREAPI时,get请求正常,但delete和put请求报405错误解决方法:在控制面版本-》程序功能-》启用关闭Windows功能中的,IIs-》常见Http->WebDAV发布(删除),后恢复正常。即当前症状:3本文内容症状原因1原因2原因3显示另外3个本文可帮......
  • node基于自签名证书搭建https服务
    原文链接:https://www.cnblogs.com/yalong/p/18232314描述基于node.js搭建一个https静态资源服务,由于只是本地用,所以使用自签名的ssl证书就行了我用的mac系统,系统自带有openssl的,其他系统如果没有请先安装使用Openssl生成CA证书生成root密钥:opensslgenrsa-outroot......
  • HttpContext探究之RequestServices
    HttpContext探究之RequestServices在一篇随笔中提到了中间件的构造方式,主要有两种,第一种是直接从容器里面获取,第二种是构造函数的参数从容器里面获取,这两者都离不开容器,也就是serviceprovide,而RequestService则是里面重要的内容RequestServices是什么HttpContext.RequestServi......
  • 7月6日烧板记录
    基于mcu的数控稳压源失败记录又名-darkarc的烧板记录和错误回顾错误回顾原理图纸上版本原理图和画在eda中的原理图不同,并且由于检查的疏忽导致在原理图就出现重大问题,此项目中的问题在于电流采样芯片的电流流向控制出现的重大失误,导致最后的pcb只能使用两个大而粗的飞线才能修......
  • Java中的错误处理和日志记录:提升应用的健壮性和可维护性
            在Java开发中,有效的错误处理和日志记录是确保应用健壮性和可维护性的关键。通过恰当的异常处理和详尽的日志信息,开发者可以迅速定位和解决问题,同时提供程序运行的透明度。本文将探讨Java中的错误处理最佳实践和日志记录技术,包括常用的日志框架和配置方法。###......
  • 序列化器(Serializers)踩坑记录
    1、data数据不能加'.values()'deflistParticulars(self,request,*args,**kwargs):particulars=xmind_particulars.objects.all()#不能加values()serializer=ParticularsSerializer(particulars,many=True)returnAPIRespones('......
  • HarmonyOS(二十三)——HTTP请求实战一个新闻列表
    在前一篇文章,我们已经知道如何实现一个http请求的完整流程,今天就用官方列子实战一个简单的新闻列表。进一步掌握ArkTS的声明式开发范式,数据请求,常用系统组件以及touch事件的使用。主要包含以下功能:数据请求。列表下拉刷新。列表上拉加载。看一下最终的效果。1.实战分析......
  • http1.1 的默认长连接 Connection: keep-alive 与 TCP KeepAlive 之间区别
     HTTP长连接,也称为HTTP持久连接(HTTPPersistentConnection)或HTTP连接重用,是一种在HTTP协议中实现的机制。在传统的HTTP通信中,每个HTTP请求和响应都会伴随着TCP连接的建立和关闭,这在高并发场景下会增加网络开销和延迟。而HTTP长连接则允许客户端和服务器在完成......