`
wyf
  • 浏览: 432948 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

OPENSSL生成SSL自签证书

    博客分类:
  • C#
 
阅读更多

OPENSSL生成SSL自签证书

 

OPENSSL生成SSL自签证书

目前,有许多重要的公网可以访问的网站系统(如网银系统)都在使用自签SSL证书,即自建PKI系统颁发的SSL证书,而不是部署支持浏览器的SSL证书。

支持浏览器的SSL证书无疑安全性是好的,但要收费(而且是按年收)。

自签SSL证书当然是免费的,但安全性就差了。

数字证书(Certificate)

在HTTPS的传输过程中,有一个非常关键的角色——数字证书,那什么是数字证书?又有什么作用呢?

所谓数字证书,是一种用于电脑的身份识别机制。由数字证书颁发机构(CA)对使用私钥创建的签名请求文件做的签名(盖章),表示CA结构对证书持有者的认可。数字证书拥有以下几个优点:

  1. 使用数字证书能够提高用户的可信度
  2. 数字证书中的公钥,能够与服务端的私钥配对使用,实现数据传输过程中的加密和解密
  3. 在证认使用者身份期间,使用者的敏感个人数据并不会被传输至证书持有者的网络系统上

X.509证书包含三个文件:key,csr,crt。

  • key是服务器上的私钥文件,用于对发送给客户端数据的加密,以及对从客户端接收到数据的解密
  • csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名
  • crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息

备注:在密码学中,X.509是一个标准,规范了公开秘钥认证、证书吊销列表、授权凭证、凭证路径验证算法等。

 

创建自签名证书的步骤

注意:以下步骤仅用于配置内部使用或测试需要的SSL证书。

第1步:生成私钥

使用openssl工具生成一个RSA私钥

说明:生成rsa私钥,des3算法,2048位强度,server.key是秘钥文件名。

注意:生成私钥,需要提供一个至少4位的密码。

1024位RSA非对称密钥对已经变得不安全了,所以,美国国家标准技术研究院( NIST )要求停止使用不安全的1024位非对称加密算法。微软已经要求所有受信任的根证书颁发机构必须于2010年12月31日之前升级其不安全的1024位根证书到2048位和停止颁发不安全的1024位用户证书,12 月 31 日之后会把不安全都所有 1024 位根证书从 Windows 受信任的根证书颁发机构列表中删除!

而目前几乎所有自签证书都是1024位,自签根证书也都是1024位,当然都是不安全的。还是那句话:由于部署自签SSL证书而无法获得专业SSL证书提供商的专业指导,根本就不知道1024位已经不安全了。

第2步:生成CSR(证书签名请求)

生成私钥之后,便可以创建csr文件了。

此时可以有两种选择。理想情况下,可以将证书发送给证书颁发机构(CA),CA验证过请求者的身份之后,会出具签名证书(很贵)。

另外,如果只是内部或者测试需求,也可以使用OpenSSL实现自签名,具体操作如下:

说明:需要依次输入国家,地区,城市,组织,组织单位,Common Name和Email。其中Common Name,可以写自己的名字或者域名,

如果要支持https,Common Name应该与域名保持一致,否则会引起浏览器警告。

第3步:删除私钥中的密码

在第1步创建私钥的过程中,由于必须要指定一个密码。而这个密码会带来一个副作用,那就是在每次Apache启动Web服务器时,都会要求输入密码,

这显然非常不方便。要删除私钥中的密码,操作如下:

第4步:生成自签名证书

如果你不想花钱让CA签名,或者只是测试SSL的具体实现。那么,现在便可以着手生成一个自签名的证书了。

需要注意的是,在使用自签名的临时证书时,浏览器会提示证书的颁发机构是未知的。

说明:crt上有证书持有人的信息,持有人的公钥,以及签署者的签名等信息。当用户安装了证书之后,便意味着信任了这份证书,同时拥有了其中的公钥。证书上会说明用途,例如服务器认证,客户端认证,或者签署其他证书。当系统收到一份新的证书的时候,证书会说明,是由谁签署的。如果这个签署者确实可以签署其他证书,并且收到证书上的签名和签署者的公钥可以对上的时候,系统就自动信任新的证书。

第5步:安装私钥和证书

将私钥和证书文件复制到Apache的配置目录下即可,在Mac 10.10系统中,复制到/etc/apache2/目录中即可。

 

转换为 pfk格式

openssl pkcs12 -export -in server.crt -out server.pfx -inkey server.key

下载OPENSSL

http://slproweb.com/products/Win32OpenSSL.html

 

引自:https://www.cnblogs.com/hnxxcxg/p/7610582.html

分享到:
评论

相关推荐

    OpenSSL生成的ssl证书

    OpenSSL是一个开源的库,包含了各种加密算法,它提供了生成SSL证书的功能。本教程将详细介绍如何使用OpenSSL在Windows环境下为Nginx服务器配置HTTPS服务,以及如何生成和管理SSL证书。 首先,了解SSL证书的作用。...

    免费openssl 生成ssl证书[ssl证书生成]

    使用OpenSSL工具可以生成SSL证书。具体步骤如下: 1. 生成私钥(Key):使用OpenSSL的genrsa命令,可以生成RSA私钥。例如: ``` openssl genrsa -des3 -out server.key 2048 ``` 这条命令会生成一个2048位的RSA...

    linux系统openssl 实现ssl自签证书

    Linux系统,如Ubuntu、CentOS、openEuler等,提供了强大的命令行工具openssl来生成这样的自签证书。 首先,生成CA根证书是整个过程的基础。CA根证书是用于签署其他证书的可信源头。在Linux环境下,可以通过shell脚...

    openssl生成证书

    【openssl生成证书】知识点详解 在IT领域,OpenSSL是一个强大的安全套接字层密码库,包含各种主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供丰富的应用程序用于测试或其他目的。生成证书是网络...

    使用openssl生成单向ssl证书

    通过以上步骤,你就成功地使用openssl生成了单向SSL证书,并将其应用于基于Boost.Asio的SSL通信测试。在实际生产环境中,通常会使用权威证书颁发机构签发的证书,以提供更高的信任度和安全性。但在测试和开发阶段,...

    Nginx配置SSL自签名证书的方法

    首先,我们需要生成自签名SSL证书。这通常包括以下步骤: 1. **生成RSA密钥**:使用`openssl genrsa`命令创建一个带有密码保护的RSA私钥。例如,`openssl genrsa -des3 -out domain.key 1024`将生成一个1024位的...

    openssl生成自签名SSL证书

    openssl生成自签名SSL证书

    用openssl为apache制作ssl证书

    ### 使用OpenSSL为Apache生成SSL证书 #### 一、引言 随着互联网技术的发展与用户对数据安全意识的提升,HTTPS协议已经成为网站标配之一。HTTPS不仅能够加密传输数据,还能验证服务器身份,确保用户访问的是真实...

    使用 OpenSSL 创建生成CA 证书服务器客户端证书及密钥

    总结来说,OpenSSL 提供了生成和管理SSL证书的全套工具,通过创建CA证书、服务器证书和客户端证书,我们可以实现SSL单向认证和双向认证,从而确保网络通信的安全。理解并熟练运用这些命令,对于任何需要处理加密通信...

    OpenSSL证书生成器

    OpenSSL 证书生成器 可用于apache的ssl证书生成

    openSSL生成证书以及在tomcat下的配置

    "openSSL生成证书以及在tomcat下的配置" openSSL是目前最流行的开源加密库之一,它提供了安全的数据传输和认证机制。在Web应用程序中,openSSL广泛应用于生成数字证书和私钥,从而确保数据的安全传输。今天,我们将...

    本地ssl证书生成工具

    在本地生成SSL证书,可以帮助开发者在测试环境中模拟真实环境的安全设置,而无需依赖第三方证书颁发机构(CA)。下面将详细介绍如何生成本地SSL证书以及相关知识点。 1. SSL证书概述: SSL证书包含一个公钥和一个...

    openSSL制作证书并在tomcat上配置

    2. 生成CA自签名证书:`openssl req -new -x509 -key ca.key -out ca.crt` CA签名证书文件 使用生成的CA证书签名服务器端和客户端的证书文件。下面是签名证书文件的步骤: 1. 使用CA证书签名服务器端证书文件:`ca...

    Linux 生成SSL证书 供 nginx使用

    Linux 生成 SSL 证书供 nginx 使用是指通过 OpenSSL 命令生成 SSL 证书的过程,这个过程包括生成私钥、证书请求文件、证书文件和配置 nginx 使用证书。 首先,生成私钥文件使用以下命令:`openssl genrsa -des3 -...

    OpenSSL 一键生成证书

    通常,生成SSL/TLS证书需要一系列复杂的命令行操作,包括生成私钥、创建证书签名请求(CSR)、签署证书等步骤。这个项目通过批处理脚本实现了自动化,为研发人员提供了"一键生成CA证书"、"一键生成Server证书"和...

    java调用openssl生成证书

    Java调用OpenSSL生成证书是一种常见的安全操作,用于创建数字证书,这些证书在网络安全中扮演着重要角色,例如HTTPS通信、服务器身份验证等。在这个过程中,我们通常会使用OpenSSL命令行工具,然后通过Java程序来...

    openssl生成的证书demo

    在这个“openssl生成的证书demo”中,我们将探讨如何使用OpenSSL生成证书、证书签名请求(CSR)以及自签名的根证书权威(CA),并理解这些组件在安全通信中的作用。 首先,我们来了解什么是证书。在SSL/TLS协议中,...

    openssl,ssl工具

    自签证书是通过 OpenSSL 生成的,不经过 CA 验证的证书。步骤如下: 1. **生成私钥**:使用 `openssl genpkey` 或 `openssl rsa` 命令生成 RSA 私钥。 2. **创建 CSR**:使用 `openssl req` 命令生成 CSR,其中需要...

    基于openssl 自行签发https 协议证书 openssl+nginx实现https自签有效加密实战记录

    文章中使用了openssl生成的根证书和服务器证书构成了证书链。 知识点八:加密和解密的概念 加密和解密是指对数据进行加密和解密的过程。文章中使用了openssl和nginx实现了加密和解密。 知识点九:SSL/TLS协议的...

    weblogic+OPENSSL+生成证书的SSL详细配置手册

    根据提供的文档信息,本文将详细解释如何通过OpenSSL生成安全证书并在WebLogic环境中进行SSL配置与验证的过程。本文档分为几个部分:安装OpenSSL、创建证书、WebLogic环境的SSL配置,以及HTTPS验证。 ### 一、安装...

Global site tag (gtag.js) - Google Analytics