win如何使用OpenSSL生成自签名证书,使 http 升级为 https

这篇具有很好参考价值的文章主要介绍了win如何使用OpenSSL生成自签名证书,使 http 升级为 https。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

前言

HTTPS其实就是HTTP over SSL,也就是让HTTP连接建立在SSL安全连接之上。

创建自签名证书需要安装openssl。参考本文安装OpenSSL部分。

使用OpenSSL生成自签名证书的步骤:参考本文使用OpenSSL生成自签名证书部分。

  1. 创建私钥Key(.key文件);
  2. 创建签名请求(.csr文件);
  3. 将Key中的密码;
  4. 用Key签名证书(.key+.csr=>.crt)

为HTTPS准备的证书需要注意,创建的签名请求的CN必须与域名完全一致,否则无法通过浏览器验证。

CA证书和自签名证书的区别?

CA证书和自签名证书都是用于加密通信的数字证书,但是它们之间有一些重要的区别:

  1. CA证书是由公认的数字证书授权机构(CA)颁发的,而自签名证书是由用户自行创建的。CA是Certificate Authority的缩写,也叫“证书授权中心”。

  2. CA证书的安全性更高,因为它们受到权威机构的信任和监管。自签名证书的安全性取决于用户的技能和处理过程。

  3. CA证书可用于公共网络和网站,因为它们已被许多浏览器和操作系统信任。自签名证书只能在私有网络或用于测试目的使用。

  4. CA证书需要支付费用,而自签名证书是免费的。

总的来说,如果您需要在公共网络上运行网站或应用程序,那么建议使用CA证书。如果您只需要在私有网络上加密通信或进行测试,则可以使用自签名证书。

安装OpenSSL

下载OpenSSL安装包

前往https://slproweb.com/products/Win32OpenSSL.html 下载win OpenSSL安装包

exe 和 msi二选一即可。注意,我们Light版本是轻量版,我们直接下载完整版本。

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

下载下来是Win64OpenSSL_Light-3_1_1.msi

安装

安装过程多数选择默认即可。

注意在选择将OpenSSL的DLL安装到Windows/System/下还是安装目录的bin目录下时,我们选择bin目录,避免System目录下其他软件的DLL影响OpenSSL。

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

其他页面一直点击下一步即可安装完成。

最后这个页面可以选择给作者打赏,不打赏的话全部取消勾选即可。

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

安装完成。

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

设置环境变量

我们还需要在系统环境变量里面添加路径,我的是C:\Program Files\OpenSSL-Win64\bin

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

添加好后,点击右边上移按钮,上移到最上面:

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

保存修改即可。

验证安装是否正确

打开cmd,输入命令查看版本:

openssl version

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

可以看到安装成功。如果不是我们安装的版本信息,可能需要重启电脑。

使用OpenSSL生成自签名证书

进入SSL文件夹

创建SSL文件夹,用于存放生成的证书文件。我的是 D:\ssl证书

打开cmd,cd到SSL文件夹路径,输入命令openssl回车。

D:
cd D:\ssl证书
openssl

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

生成服务器私钥(.key 文件)

输入以下命令生成秘钥文件:

openssl genrsa -des3 -out server.pass.key 2048

随后输入一个4位以上的密码,然后再输入一次密码。如图:

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

命令解释如下:

genra:生成RSA私钥
-des3:使用des3算法
-out :指定生成文件名
2048:私钥长度设置为2048

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

去除私钥中的密码

openssl rsa -in server.pass.key -out server.key

rsa: 生成RSA私钥

-in:输入私钥文件

-out: 输出私钥文件

无密码:设置无密码的私钥文件

随后输入server.pass.key的密码。如图:

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

生成证书签名请求(.csr文件)

输入以下命令生成证书签名请求:

openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=OrganizeName/OU=UnitName/CN=192.168.0.174"

req:生成证书签名请求
-new:新生成
-key:私钥文件
-out:指定生成的CSR文件名
-subj:生成CSR证书的参数

subj参数说明如下:

字段 全称 举例
/C= Country 国家 CN
/ST= State or Province 州/省 Zhejiang
/L= Location or City 城市 Hangzhou
/O= Organization 组织/企业 OrganizeName
/OU= Organization Unit 部门 UnitName
/CN= Common Name 域名or IP www.yourdomain.com 或者 192.168.x.x

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

生成自签名SSL证书(.crt文件)

openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

-days:证书有效期

-req:需要证书

-in:输入csr文件

-signkey:指定 .key 文件

-out:输出crt文件

文件夹总共有4个文件,server.pass.key 、server.key、server.csr、server.crt。

其中配置nginx的话需要server.key和server.crt两个文件。

至此,证书生成完成。

X.509 证书包含三个文件:key,csr,crt
key是服务器上的私钥文件,用于对发送给客户端数据的加密,以及对从客户端接收到数据的解密
csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名
crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息
备注:在密码学中,X.509是一个标准,规范了公开秘钥认证、证书吊销列表、授权凭证、凭证路径验证算法等。

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

自签名证书的使用(以Nginx为例)

服务端上传SSL证书

Web服务器需要把server.crt发给浏览器验证,然后用server.key解密浏览器发送的数据。(剩下两个文件server.pass.keyserver.csr已经不需要了)。

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

服务端配置443端口并使用SSL证书

以Nginx为例,我们在 %你的Nginx安装目录%/conf/nginx.conf 里添加对443端口的监听。

需要在server{...}中配置:

	server {
		#监听443端口
		listen       443 ssl; 
		server_name  127.0.0.1;
		#ssl证书的crt文件路径
		ssl_certificate     D:\\SSLCertificate\\server.crt;
		#ssl证书的key文件路径
		ssl_certificate_key D:\\SSLCertificate\\server.key;
		#反向代理
		location / {
			root   html;
			index  index.html index.htm;
			proxy_pass  http://127.0.0.1:7001;
			}
	}

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

修改完成后,输入以下命令重新加载 nginx.conf 即可

D:
cd D:\Nginx
nginx -s reload

客户端访问https

如果一切顺利,打开浏览器,就可以通过HTTPS访问网站。第一次访问时会出现警告(因为我们的自签名证书不被浏览器信任)如图所示:

win如何使用OpenSSL生成自签名证书,使 http 升级为 https

方式一:强制浏览器和操作系统接受我们自己的证书颁发机构

一种做法是:点击【高级】->【继续前往192.168.x.x(不安全)】。

您可以强制浏览器和操作系统接受我们自己的证书颁发机构。因此,一旦安装 CA 证书并将其添加到受信任列表中,您将不会看到安全警告。

方式二:在您的浏览器/操作系统中安装证书授权

另一种做法:您还可以与您的开发团队共享 CA 证书,以便在他们的浏览器中安装。通过浏览器把证书导入并设置为“受信任”,以后该电脑访问网站就可以安全地连接Web服务器了。

  1. MAC 用户查看此指引
  2. Windows 用户查看此指引

参考文章

给Nginx配置一个自签名的SSL证书

使用OpenSSL生成自签名SSL证书

How to Create Self-Signed Certificates using OpenSSL文章来源地址https://www.toymoban.com/news/detail-503003.html

到了这里,关于win如何使用OpenSSL生成自签名证书,使 http 升级为 https的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows 安装 OpenSSL 生成自签名证书

    下载openssl.exe:适用于 Windows 的 Win32/Win64 OpenSSL 安装程序 Win64 OpenSSL v1.1.1i Light,安装Win64 OpenSSL v1.1.1i最常用的软件包 Win64 OpenSSL v1.1.1i,安装Win64 OpenSSL v1.1.1i完整软件包 Win32 OpenSSL v1.1.1i Light,安装Win32 OpenSSL v1.1.1i最常用的软件包 Win32 OpenSSL v1.1.1i,安装Win32 OpenSSL v1.1.1i完整软件

    2024年01月25日
    浏览(34)
  • https-OPenSSL证书生成及自签名证书

    目录 SSL/TLS 1、搭建OPenssl服务器 1.1、下载  1.2、安装下载好的exe程序 2、服务器端证书-生成key、CSR、CRT 2.1、进入如下目录,执行cmd  2.2、生成一个私钥key  2.3、由生成的私钥key生成一个待签名的CSR证书文件(公钥)  2.4、查看证书内容 3、自建CA证书 3.1、创建CA私钥 3.2、生成C

    2024年02月08日
    浏览(40)
  • 通过openSSL生成自签名的SSL证书

    自签名证书:就是 指的根证书,就是颁发者:和颁发给: 是相同的。证书的签名是用证书里的公钥对应的私钥进行的签名。这样的证书除非是受信任的颁布机构颁发f,一般是不被第三方信任。一般用于内部使用及测试使用。 下面介绍生成证书的方法: 1. 生成私 钥 要创建

    2023年04月17日
    浏览(39)
  • 在Linux上使用openssl生成CA认证文件并为服务器和客户端颁发CA签名证书

    本文基于Linux上CentOS 7版本配合openssl与mod_ssl(需要使用yum下载)进行配置演示 目录 一.生成认证主要流程 1.虚拟出一个CA认证机构,为其生成公私钥以及自签证书 2.生成服务器方私钥,发送包含服务器方公私钥的申请文件给CA机构请求签发证书 3.生成客户端方私钥,发送包含服务

    2024年02月16日
    浏览(46)
  • Win10使用OpenSSL生成证书的详细步骤(NodeJS Https服务器源码)

    远程开启硬件权限,会用到SSL证书。 以下是Win10系统下用OpenSSL生成测试用证书的步骤。 Step 1 . 下载OpenSSL,一般选择64位的MSI Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions     一路点下来,如果后续请你捐款,可以不选择。 win10下很可能的安装路径为: C:Program FilesO

    2024年02月01日
    浏览(38)
  • openssl自签名CA根证书、服务端和客户端证书生成并模拟单向/双向证书验证

    1.1 生成CA证书私钥 openssl genrsa -aes256 -out ca.key 2048 1.2 取消密钥的密码保护 openssl rsa -in ca.key -out ca.key 1.3 生成根证书签发申请文件(csr文件) openssl req -new -sha256 -key ca.key -out ca.csr -subj \\\"/C=CN/ST=FJ/L=XM/O=NONE/OU=NONE/CN=localhost/emailAddress=test@test.com\\\" 上述参数含义 req----执行证书签发命令

    2024年04月25日
    浏览(35)
  • SSL/TLS 介绍以及如何利用openssl生成证书

    SSL:Secure Socket Layer 安全套接字层。 TLS:Transport layer Security 传输层安全性,是一种加密协议。 到2020年,SSL以及TLS1.0,TLS1.1已被弃用 Authentication:通信双方可以确认双方的身份,不被黑客拦截信息伪造身份。 Confidentiality:通信的内容经过加密,更加安全,不被授权的用户无法识别

    2024年02月04日
    浏览(43)
  • 使用OpenSSL生成/签发证书步骤

    生成私钥和公钥: 2.私钥签名 对数据data.txt进行签名 3.公钥验签 生成自己的私钥文件(.key) 基于私钥生成证书请求文件(.csr) 将证书请求文件(.csr)提交给证书颁发机构(CA),CA会对提交的证书请求中的所有信息生成一个摘要,然后使用CA根证书对应的私钥进行加密,这就是所谓

    2024年02月03日
    浏览(35)
  • Openssl生成证书-nginx使用ssl

    方式一: 1、生成服务器私钥。 2、根据服务器私钥文件生成证书请求文件,这个文件中会包含申请人的一些信息,所以执行下面这行命令过程中需要用户在命令行输入一些用户信息,随便填写,一路回车即可。 3、生成CA机构的私钥,命令和生成服务器私钥一样,只不过这是

    2024年02月05日
    浏览(46)
  • sm2证书生成(openssl生成公私钥对)—使用

    用上一篇的命令生成公私钥对。 1、sm2PubKey.pem 2、sm2PriKeyPkcs8.pem 3、openssl ec -in sm2PriKeyPkcs8.pem -text 5、工具类 BCECUtil.java SM2Util.java 6、写一个main方法 执行结果: 密钥和命令解析出来的一样。 依赖包:bcprov-jdk15on-1.70.jar SM2加密算法的结果长度,取决于明文长度,没记错的话是

    2024年02月02日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包