`

SSL证书制作(转)

    博客分类:
  • CAS
 
阅读更多

SSL证书制作

证书签名方案

使用OpenSSL制作证书其实还蛮简单的,只是证书签名的部分有一点复杂,方法有三:

  1. 交由受浏览器信任的第三方证书颁发机构签名;
  2. 自签名;
  3. 自制CA证书并用其签名。

对于上线运营的网站来说,第一个方案是首选,因为只有这样浏览器才不会报警。过去买证书很贵,现在倒是有免费的了,比如IE和Firefox都内置的StartSSL

不同的证书颁发机构对于证书生成多少都会有自己的要求,所以本文主要讨论后两种方案。

自签名证书

注:下面提到的很多命令都需要一个openssl配置文件,该文件一般名为openssl.cnf。Linux里一般不用管,Windows可使用参数config指定路径,使用环境变量OPENSSL_CONF也可以。

使用如下命令即可生成自签名证书:

openssl req -x509 -newkey rsa:1024 -nodes -days 365 -out self.pem -keyout self.key

req命令表示创建证书,newkey参数表示创建私钥而不是从已存在的文件中读取,nodes参数表示不加密私钥。如果不添加nodes参数,以后每次使用私钥时都必须输入密码(如Apache每次重启)。

输入证书信息时,Common Name需要写域名,支持通配符,如*.domain.tld。

程序运行完成后,self.pem即为完成签名的证书,self.key则为私钥。

使用上述命令创建的证书只能写一个域名匹配字符串,如写了*.domain.tld之后,访问https://domain.tld仍然会报错。如果想在一个证书中指定多个域名匹配字符串,则需要打开openssl.cnf文件,在末尾处添加如下内容:

[ ca_x509v3_more_cn_ext ]
nsComment="OpenSSL Generated Certificate"
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer:always
basicConstraints=CA:true
subjectAltName = DNS:domain.tld,DNS:*.domain.tld

将subjectAltName行修改为需要的内容后保存退出,使用如下命令重新生成自签名证书:

openssl req -x509 -newkey rsa:1024 -nodes -days 365 -out self.pem -keyout self.key -extensions ca_x509v3_more_cn_ext

自制CA证书并用其签名

如需要使用多个证书,每一个都自签名则意味着每一个都需要导入浏览器,这样就很麻烦。自制CA证书并用其签名后,无论制作了多少个证书,都只需要将自制的CA证书导入浏览器即可,相对来说方便些。

上例中用一条命令直接生成了私钥和证书,这次换个方法,分解为两步。

首先,生成自己的个人私钥:

openssl genrsa -des3 -out my.key 2048

des3参数表示使用该算法加密生成的私钥,以后每次使用私钥时都必须输入密码,去掉这个参数则不进行加密。

根据个人私钥生成自签名CA证书:

openssl req -x509 -key my.key -days 911 -new -out my.pem

输入证书信息时,Common Name可以写自己的名字。将该CA证书导入浏览器后,该名字会显示在证书管理器中。

接下来生成服务器的私钥和证书:

openssl req -newkey rsa:1024 -nodes -days 365 -out server_unsigned.pem -keyout server.key

再之后,就可以用个人证书签名服务器证书了:

openssl ca -days 365 -md sha1 -in server_unsigned.pem -out server.pem -cert my.pem -keyfile my.key

如该命令报错找不到index.txt之类的,视openssl.cnf中的配置,则需要做点准备工作:

mkdir demoCA
mkdir demoCA\newcerts
touch demoCA\index.txt
echo 11 > demoCA\serial

index.txt为空,serial随便写一个两位的数字进去。

多个域名的支持问题,跟上面说的一样,添加extensions参数:

openssl ca -days 365 -md sha1 -in server_unsigned.pem -out server.pem -cert my.pem -keyfile my.key -extensions ca_x509v3_more_cn_ext

完成后,server.key和server.pem即为已签名的证书及私钥。如果用在Lighttpd中,将两个文件合并即可。

最后,将my.pem导入至浏览器中“受信任的根证书颁发机构”即可。

其他

如果要去掉私钥的密码保护,可以这样做:

openssl rsa -in my.key -out my_plain.key

如果需要根据私钥生成公钥,可以这样做:

openssl rsa -in my.key -pubout -out my_public.key

证书生成后,可以使用如下命令查看详细信息:

openssl x509 -fingerprint -text -in my.pem

使用证书加密信息:

openssl smime -encrypt -in ptest.txt -out etest.txt my.pem

使用私钥解密:

openssl smime -decrypt -in etest.txt -out dtest.txt -inkey my.key

若需要DER格式的证书,可使用如下命令进行转换:

openssl x509 -in my.pem -outform DER -out my.der

分享到:
评论

相关推荐

    SSL证书生成软件、包括转换证书格式

    SSL证书生成软件、包括转换证书格式

    window下关于漏洞CVE-2004-2761,ssl证书制作工具

    描述中提到的"ssl证书制作生成工具",包括MakeCert.exe和pvk2pfx.exe,是Windows SDK中用于创建自签名证书的工具。MakeCert.exe是一个命令行实用程序,允许用户创建X.509证书,这些证书可以用于测试目的或在本地环境...

    ssl证书生成图形化工具.zip

    SSL证书是网络安全领域中的一个重要组成部分,它主要用于加密网络通信,确保数据在传输过程中不被窃取或篡改。本文将详细介绍“ssl证书生成图形化工具.zip”中的关键知识点,包括SSL证书、XCA工具、证书生成流程以及...

    ssl证书安装制作工具window版

    本文将详细介绍如何使用“setup_xca-1.3.2.exe”这款Windows版的SSL证书安装制作工具,以及自签发证书和公私钥的概念。 首先,让我们了解SSL(Secure Sockets Layer)证书。SSL证书是由受信任的证书颁发机构(CA)...

    java ssl证书制作工具

    Java SSL证书制作工具,如Portecle,是用于创建、管理和查看数字证书的安全软件。SSL(Secure Sockets Layer)证书是网络安全的一种基础组件,广泛应用于网站加密,确保数据传输过程中的隐私性和完整性。Portecle...

    ssl证书(nginx+tomcat+java代码适用)

    ssl自制全套证书(包含服务器端、客户端、ca端的证书,格式有.crt,.key,.truststore,.keystore,.p12,.cer,.pem等类型),当时要配置webservice接口、tomca、nginx通过ssl访问的证书,弄了好久才生成了一套能使用的。...

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

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

    用openssl为apache制作ssl证书

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

    阿里SSL证书两种配置方法

    本篇文章将详细阐述阿里云SSL证书的两种配置方法,并附带uniapp应用的证书制作流程。 一、阿里云SSL证书的配置方法 1. **手动配置**: 手动配置适合于熟悉服务器管理的用户,通常包括以下步骤: - **购买SSL证书...

    openssl,ssl证书,制作CSR文件

    本篇文章将深入探讨如何使用开源工具OpenSSL来制作CSR(Certificate Signing Request)文件,这是申请SSL证书的第一步。 首先,了解OpenSSL。OpenSSL是一个强大的安全套接字层密码库,包含各种主要的密码算法、常用...

    SSL双向认证证书制作过程流程

    SSL双向认证证书制作过程流程

    关于SSL证书配置

    SSL证书是网络安全领域中至关重要的一个组成部分,全称为Secure Sockets Layer(安全套接层)证书,用于在互联网上建立安全的加密连接,确保数据在客户端和服务器之间传输时不会被窃取或篡改。SSL证书由受信任的证书...

    SSL证书卸载与SSI高级应用.pdf

    本文档主要介绍了SSL证书卸载和SSI(Server Side Include)高级应用,涵盖了SSI的定义、使用理由、制作责任人、包含处理等方面。 什么是SSI SSI(Server Side Include)是服务器端页面包含,工作在web服务器上,...

    2 制作第一张自己的SSL证书.zip

    制作SSL证书的过程主要分为以下几个步骤: 1. **生成密钥对**:首先,你需要在本地计算机上使用OpenSSL工具生成一对密钥,包括一个公钥和一个私钥。这可以通过执行以下命令完成: ``` openssl genrsa -out server...

    windows下制作和应用数字签名证书全套工具

    远程服务使用已使用加密弱散列算法(例如MD2,MD4,MD5或SHA1) 签名的SSL证书链。已知这! 攻击者可以利用此方法生成具有相同数字签名的另一个证书,允许攻击者伪装成受影响的服务。 CVE-2004-7761

    windows创建自签名SSL证书所需工具

    制作windows自签名证书所需要的工具openssl-0.9.8k_WIN32,解压后参考此篇文件进行制作:https://blog.csdn.net/u013992330/article/details/89090380

    pfx证书制作工具.zip

    这个“pfx证书制作工具.zip”压缩包提供了帮助用户生成和管理这些证书的工具。 RSA是一种广泛使用的非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman三位科学家提出,它的核心在于有一对密钥:公钥和...

    根证书制作成exe文件

    这些证书存储在用户的受信任的根证书存储区,如果一个网站的SSL证书是由一个已知的、受信任的根CA签发的,浏览器就会显示绿色锁图标,表明连接是安全的。 制作根证书成exe文件的过程主要包括以下步骤: 1. 创建根...

    ssl自签名证书生成(v1)

    自签名证书是一种特殊的SSL证书,由证书所有者自行创建并签署,主要用于测试环境或内部网络中的服务认证。 本文档详细介绍了如何使用OpenSSL工具生成自签名的SSL证书,并通过一个实际操作案例进行说明。 #### 二、...

Global site tag (gtag.js) - Google Analytics