首页 > 其他分享 >开发环境建立自签名证书,运行https网站

开发环境建立自签名证书,运行https网站

时间:2023-10-16 14:35:47浏览次数:40  
标签:证书 server SSL pem 签名 https 服务器 客户端

介绍

HTTPS是互联网上保护数据传输安全性的标准之一。在开发和测试环境中,我们经常使用自签名SSL证书来启用HTTPS连接。然而,有时候在配置HTTPS服务器时,可能会出现一些问题,特别是关于SSL证书和私钥的配置。

什么是自签名SSL证书?

自签名SSL证书是由服务器自行签发,而不是由受信任的第三方证书颁发机构(CA)签发的SSL证书。这意味着它没有经过公共信任的验证,因此在生产环境中通常不建议使用。自签名SSL证书用于测试、开发或内部服务器的情况,它可以提供加密连接,但客户端(如浏览器)通常会警告用户它不是受信任的证书。

生成自签名SSL证书

生成自签名SSL证书通常需要以下步骤:

  1. 生成私钥:使用openssl工具生成私钥,这是一个用于加密和解密数据的关键。
  2. 生成证书请求(CSR):CSR文件包含有关服务器和组织的信息以及公钥,它用于向证书颁发机构请求签发SSL证书。
  3. 自签名证书:使用生成的CSR文件和私钥,签发自签名SSL证书。
openssl req -newkey rsa:2048 -new -nodes -keyout key.pem -out csr.pem
openssl x509 -req -days 365 -in csr.pem -signkey key.pem -out server.crt

其中key.pem是私钥,csr.pem是证书请求文件,server.crt是使用证书请求文件生成的SSL证书。
通常正式环境server.crt由受信任的CA签发。

使用http-server运行ssl网站

npx http-server -C server.crt -K key.pem -S .

SSL的工作原理

SSL的工作原理可以概括为以下步骤:

  1. 客户端向服务器请求建立安全连接:客户端向服务器发送连接请求,并请求使用SSL。
  2. 服务器发送证书:服务器将其SSL证书(server.crt)发送给客户端,证明其身份。
  3. 客户端验证证书:客户端验证证书的有效性,包括检查证书是否由受信任的CA签发,并检查证书是否已过期。
  4. 密钥交换:如果证书验证成功,客户端生成一个随机的对称密钥,并使用服务器的公钥(包含在SSL证书中)对其进行加密,然后将其发送给服务器。
  5. 数据加密和通信:服务器使用自己的私钥来解密客户端发送的对称密钥,然后客户端和服务器都使用对称密钥来加密和解密通信中的数据。
  6. 建立安全连接:客户端和服务器现在可以安全地通信,数据在传输过程中受到加密保护。

SSL确保了安全的数据传输,防止中间人攻击和数据泄漏。私钥、CSR和证书是SSL协议中关键的组成部分,确保了通信的安全性和可信性。

标签:证书,server,SSL,pem,签名,https,服务器,客户端
From: https://www.cnblogs.com/towinar/p/17767229.html

相关文章

  • python封装https请求
    importhttp.clientimportjsonclassHTTPS_Connection:def__init__(self,res_type,body,url,api_path,headers):self.res_type=res_type#接口请求类型self.body=body#请求参数self.url=url#请求服务地址......
  • BitBake使用攻略--BitBake的语法知识二(转载自https://www.cnblogs.com/chegxy/archive
    目录写在前面1.BitBake中的任务2.任务配置2.1依赖2.1.1内部任务间的依赖2.1.2不同菜谱下的任务间依赖2.1.3运行时态下的依赖2.1.4递归依赖2.1.5任务间的依赖2.2事件2.3校验和3.ClassExtensionMechanism 写在前面这是《BitBake使用攻略》系......
  • BitBake使用攻略--从HelloWorld讲起 (转载自:https://www.cnblogs.com/chegxy/p/1571811
    目录写在前面1.什么是BitBake2.BitBake的安装3.使用BitBake构建一个HelloWorld工程后续 写在前面《BitBake使用攻略》系列文章将从今天开始不定时的更新,主要讲解BitBake的背景,基本语法,功能及其命令等知识,旨在为即将从事Yocto项目和OpenEmbedded项目的同学做一些预......
  • java.lang.TypeNotPresentException: Type javax.servlet.http.HttpServletRequest no
    完整的报错信息java.lang.TypeNotPresentException:Typejavax.servlet.http.HttpServletRequestnotpresent atjava.base/sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:117)~[na:na] atjava.base/sun.reflect.generics......
  • 1+X证书--传感器应用开发初级-C语言点亮LED灯
    #include<CC2530.h>//引入头文件CC2530.h。#defineled1P1_0//宏定义led1为端口P1_0。#defineled2P1_1//宏定义led2为端口P1_1。voidmain(void)//在main函数中进行程序的运行。{P1DIR=(0x01<<0)|(0x01<<1);//定义输出端口。led1=1;//点亮led1灯:1是亮,0是灭。led......
  • windows系统安装openssl并且转换证书格式
    概述碎碎念,如果你有MAC电脑,就别折腾了,直接用MAC电脑吧,不用安装直接用openssl本文主要讲到了openssl的基本使用方法,开发环境为windows,开发工具为VS2019.本文主要是说明openssl如何使用,不介绍任何理论知识,如果有不懂的,请自行百度。个人建议下一个everything查询工具,真的很好用,比......
  • https是如何实现加密http消息的?
    1、利于服务端证书公钥加密、服务端私钥解密得到会话密钥(使用证书使服务端也会话密钥)2、使用会话密钥-属于对称加密,用的是同一个密钥3、对称加密消息  ......
  • DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): conda.anaconda.o
     001、问题conda安装samtools出现如下问题:(base)[root@pc1home]#condainstallsamtools-cbioconda 002、解决方法 ......
  • Loadrunner12 在谷歌浏览器录制https协议的脚本时,提示不是私密链接-解决办法
    在谷歌浏览器下,录制https协议网址的脚本时,会出现如下提示:   接下来,教大家一招黑操作: 1、鼠标点击屏幕,聚焦在当前页面2、输入thisisunsafe,点击回车,奇迹的事情发生了,可以打开https协议的网页正常录制了!!!   3、接下来就根据你的测试需求,来进行操作。(只要提示不是私密......
  • jks格式证书转为cer格式
    1、确保系统上安装了JavaDevelopmentKit(JDK),并将其路径添加到环境变量中。2、使用以下命令导出JKS证书的私钥和证书链到PKCS12格式的文件:keytool-importkeystore-srckeystoreyour_certificate.jks-srcstorepassyour_password-destkeystorecertificate.p12-deststorety......