大兴高端网站建设,公司团建拓展训练,秦皇岛微信群,洛阳建公司网站目录
一、前言
HTTP和HTTPS的含义以及区别
二、域名映射
三、添加SSL证书
四、Http转Https
五、内网穿透 一、前言
我们平常写完一个接口#xff0c;其访问一般都是使用http协议 我们最终想要的结果是使用安全的HTTPS来访问 在我们开始实现之前#xff0c;我们要先搞明…目录
一、前言
HTTP和HTTPS的含义以及区别
二、域名映射
三、添加SSL证书
四、Http转Https
五、内网穿透 一、前言
我们平常写完一个接口其访问一般都是使用http协议 我们最终想要的结果是使用安全的HTTPS来访问 在我们开始实现之前我们要先搞明白
HTTP和HTTPS的含义以及区别 HTTPHypertext Transfer Protocol和HTTPSHypertext Transfer Protocol Secure都是用于在网络上传输数据的协议但它们之间存在一些关键的区别 1、安全性
HTTP 是一种不安全的协议传输的数据是明文的容易被中间人攻击窃听、篡改或伪造。HTTPS 在HTTP的基础上使用了安全套接字层SSL或传输层安全TLS协议对传输的数据进行加密提供更高的安全性。
2、加密方式
HTTP 不提供数据加密数据以纯文本形式传输。HTTPS 使用加密算法对数据进行加密使其在传输过程中难以被窃听和解密。
3、端口
HTTP 默认端口是80。HTTPS 默认端口是443。
4、证书
HTTP 不需要证书。HTTPS 需要使用SSL证书用于验证服务器的身份确保客户端与服务器之间的
5、身份验证
HTTP 不提供身份验证任何人都可以发送请求。HTTPS 通过证书进行身份验证确保客户端连接到正确的服务器
总体而言HTTPS相对于HTTP更加安全适用于需要保护用户隐私和数据完整性的场景尤其是在进行敏感信息传输如登录、支付的时候。大多数现代网站都在使用HTTPS来提供更安全的通信。 二、域名映射 域名Domain Name是用于标识互联网上资源如网站、服务器等的人类可读的文本名称。它的作用主要包括以下几个方面 方便记忆 IP地址是用于在网络中标识计算机和设备的数字标签它们通常是一串数字例如192.168.1.1。而域名提供了人类友好的方式来标识和记忆网站或服务器比如www.example.com。 统一资源定位URL 域名通常是网址URL的一部分。URL是用于定位和访问互联网上资源的地址包括协议例如HTTP或HTTPS、域名、路径等。例如https://www.example.com/page 中的www.example.com就是域名。 提供服务 域名不仅仅是标识也与服务和内容关联。当用户在浏览器中输入域名时系统会通过域名解析将其映射到相应的IP地址然后连接到相应的服务器从而获取网站的服务和内容。 品牌建设 对于企业、组织或个人而言域名是建立在线品牌和身份的重要组成部分。选择一个有意义、易记且与品牌相关的域名可以提高品牌的可识别性和用户记忆度。 电子邮件 域名通常也用于电子邮件地址例如userexample.com。邮件服务器使用域名来确定邮件的发送和接收地址。
总体而言域名是互联网上标识和访问资源的一种方便、易记的方式为用户提供了更友好的访问体验。域名系统DNS负责将域名解析为对应的IP地址使得用户能够通过简单的文本标识来访问互联网上的各种服务和内容。 这里以腾讯云为例在这里可以购买一个域名 购买完域名之后 就可以点击域名解析在这里映射你自己的ip地址。需要等待一段时间才会生效。 此时你既可以使用原本的本地localhost进行访问也可以使用这个域名进行访问如 三、添加SSL证书
有了SSL证书就可以开启HTTPS协议了同样以腾讯云为例 我们可以申请一个免费的SSL证书 跟着它的步骤一步步来就可以了 完成以上操作之后将刚才的证书下载下来我们是要在后端部署这个证书
因此选择TomcatJKS格式下载 将下载完的ssl证书放在resources目录下 在配置文件中配置如下信息
server:port: 8888 #端口配置ssl: #ssl配置enabled: true # 默认为true#key-alias: alias-key # 别名(可以不进行配置)# 保存SSL证书的秘钥库的路径key-store: classpath:ssl/an1ong.online.jkskey-password: cb70506mf37q0h#key-store-password: 证书密码key-store-type: JKS
这里要把key-store与key-password改了
key-store是你的ssl证书的路径与名字
key-password是你的证书密码密码在下载完自带的keystorePass.txt里面
这样配置完毕之后再启动服务器就可以使用安全的https来访问了 四、Http转Https
这个时候我们启用了https但是会发现原本http访问就使用不了了 这个时候我们就可以添加以下配置
package com.wal.config;
import org.apache.catalina.connector.Connector;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** https配置将http请求全部转发到https* author Jacob*/
Configuration
public class HttpsConfig {Value(${custom.http-port: 8889})private Integer httpPort;Beanpublic TomcatServletWebServerFactory servletContainer() {TomcatServletWebServerFactory tomcat new TomcatServletWebServerFactory();tomcat.addAdditionalTomcatConnectors(httpConnector());return tomcat;}Beanpublic Connector httpConnector() {Connector connector new Connector(org.apache.coyote.http11.Http11NioProtocol);connector.setPort(httpPort);return connector;}}其中
Value(${custom.http-port: 8889})
回去配置文件中寻找custom.http-port的配置属性如果没有找到就是用后面的默认值8889
意思也就是说这个http也占用了一个端口只不过你访问这个http的时候就会再跳转至https的资源 五、内网穿透
此时由于我们在解析域名的时候映射的是本地网路ip那么这就意味着只有与我们在同一个局域网的人才可以找到并访问我们的服务器资源。
就如我们玩我的世界一样必须在同一个互联网下才可以直接联机。
我们希望自己的服务器可以暴露在公网上让别人就可以直接访问到。那么就要使用到内网穿透
同样的我的世界远程联机一般都是用内网穿透来实现的
这里推荐一个内网穿透网站SakuraFrp (natfrp.com) 之后这个frp-now.top:47727 就映射到了 我们的localhost并且是可以直接在公网上访问到的 然后域名这里映射也改一下让域名映射我们的内网穿透ip而内网穿透ip又映射我们的localhost 则此时我们就实现了一个有着域名的安全的在公网上可访问的服务器