HTTPS

HTTPS介绍

https://www.cnblogs.com/heyongshen/p/16787878.html

HTTPS_第1张图片

HTTPS_第2张图片

  1. 客户端发起HTTPS请求
      用户在浏览器里输入一个https网址,然后连接到服务器的443端口

  2. 服务端的配置
      采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。这套证书其实就是一对公钥和私钥

  3. 传送服务器的证书给客户端
      证书里其实就是公钥,并且还包含了很多信息,如证书的颁发机构,过期时间等等

  4. 客户端解析验证服务器证书
      这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效,比如:颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随机值。然后用证书中公钥对该随机值进行非对称加密

  5. 客户端将加密信息传送服务器
      这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了

  6. 服务端解密信息
      服务端将客户端发送过来的加密信息用服务器私钥解密后,得到了客户端传过来的随机值

  7. 服务器加密信息并发送信息
      服务器将数据利用随机值进行对称加密,再发送给客户端

  8. 客户端接收并解密信息
      客户端用之前生成的随机值解密服务段传过来的数据,于是获取了解密后的内容

CA–服务器证书–使用CA签名服务器证书–部署证书–查看证书

https://blog.csdn.net/Gjqhs/article/details/121758742

获取免费的HTTPS证书

https://blog.csdn.net/qing_gee/article/details/90031376

配置教程

https://zhuanlan.zhihu.com/p/625351183

免费证书+nginx配置

https://blog.csdn.net/qq_35719898/article/details/124584911

申请证书的3种方式

apache申请证书的方式

  1. 搭建私有CA实现证书的颁发

https://www.cnblogs.com/heyongshen/p/16790924.html

  1. 使用CentOS7快速生成一个自签名证书
[root@ansible certs]# pwd
/etc/pki/tls/certs

[root@ansible certs]# ls
ca-bundle.crt  ca-bundle.trust.crt   make-dummy-cert  Makefile  renew-dummy-cert

#取消makefile文件中对私钥文件的加密
[root@ansible certs]# vim Makefile
%.key:
        umask 77 ; \
        #/usr/bin/openssl genrsa -aes128 $(KEYLEN) > $@
        /usr/bin/openssl genrsa  $(KEYLEN) > $@

#生成证书
[root@ansible certs]# make Makefile httpds.crt
  1. 通过阿里云等网站下载免费的证书(需要有域名)

JAVA客户端使用账号密码访问HTTPS网站

【java】java访问https并验证账号密码_sslcontextbuilder-CSDN博客

保护措施

​​​​​​https URL中的用户名和密码 | WP2

在https URL中包含用户名和密码是不安全的,因为它们可能会被拦截或记录下来,从而导致账户信息泄露。相反,您应该始终使用基于令牌或证书的身份验证方法进行安全的访问控制。

如果您不得不使用用户名和密码来访问某个https URL,则需要确保在传输过程中对其进行加密。可以使用加密技术(如TLS/SSL)来实现这一点,以确保敏感信息在传输过程中得到保护。

此外,强烈建议您避免在URL中包含密码,并使用其他身份验证方法,例如HTTP基本身份验证或OAuth等。这些方法可提供更安全的访问控制,可确保您的账户信息得到保护。

总之,将用户名和密码直接包含在https URL中不是一个安全的做法,因此应该尽可能避免这样做,而选择更安全的身份验证选项。

springboot项目支持https访问

https://blog.csdn.net/qq_43575801/article/details/128724874

https://blog.csdn.net/m0_55070913/article/details/126617084

springboot项目强制http跳转https

https://blog.csdn.net/qq_43575801/article/details/128724874 

springboot项目使用security启用用户名密码登录页面

https://pythonjishu.com/sfcrmwhxkkqopnb/

你可能感兴趣的:(https,网络协议,http)