如何使用"OpenSSL"自签证书(Self-Sign Certificate)

当您访问自己组织或个人的服务时是否经常遇到如下的证书问题:


当然,您可以容忍此错误,Continue to this website。 或者从CA(证书颁发机构)购买SSL证书,除此之外我们是否还有更多的选择呢?

是的,我们可以使用OpenSSL创建个人的免费证书


OpenSSL

OpenSSL是大多数MacOS X,Linux,和Unix安装的免费工具。 您还可以在 http://slproweb.com/products/Win32OpenSSL.html 下载Windows版本进行使用。 使用OpenSSL创建自签名证书的过程非常简单:

  1. 生成CA根证书

    1) 创建私钥(rootCA.key)

    2) 创建CA根证书(rootCA.crt)

    3) 安装CA根证书

  2. 生成CA自签证书

    1) 创建私钥

    2) 创建CSR

    3) 使用CA根证书签名CSR

生成CA根证书

  1. 创建私钥

    openssl genrsa -out rootCA.key 2048

    私钥的标准大小为 1024/2048/4096,请根据需要进行选择。

    还可以创建加密私钥:

    openssl genrsa -des3 -out rootCA.key 2048
  2. 创建CA根证书
    openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.crt

    此时需要输入一些如下相关信息:

    -----
    Country Name (2 letter code) [AU]:CN
    State or Province Name (full name) [Some-State]:Beijing
    Locality Name (eg, city) []:Beijing
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:VMware
    Organizational Unit Name (eg, section) []:Euc
    Common Name (eg, YOUR name) []:CA
    Email Address []:[email protected]
  3. 安装CA根证书

    1) IE & Chrome

    IE:  Internet Options->Content->Certificates

    Chrome: Settings->Advanced->Privacy and security->Manage certificates

    IE & Chrome 都会指定到相同的 windows certificate repository,选择"Trusted Root Certification Authorities", Import "rootCA.crt"

    2) Firefox

    Options->Advanced->Certificates->View Certificates

生成CA自签证书

  1. 创建私钥

    openssl genrsa -out server.key 2048
  2. 创建CSR

    1)配置Subject-Alternative-Name 否则会出现No subject alternative names错误

    a. 找到并拷贝“openssl.cnf”文件, Linux机器文件位置为"/etc/ssl/openssl.cnf"。

    如果无法找到该文件可以从http://web.mit.edu/crypto/openssl.cnf 复制一份。

    b. 编辑拷贝的“openssl.cnf”文件

    (1) 在 [req ] 节点下取消对req_extensions= v3_req 的注释

    (2) 在[v3_req] 节点下添加 subjectAltName 属性

    [ v3_req ]
    
    
    # Extensions to add to a certificate request
    
    
    basicConstraints = CA:FALSE
    keyUsage = nonRepudiation, digitalSignature, keyEncipherment
    subjectAltName = @alt_names
    
    
    [alt_names]
    IP.1 = xxx.xxx.xxx.xxx
    IP.2 = xxx.xxx.xxx.xxx
    DNS.1 = xxx.xxx.com

    Ip ,DNS 为服务器(Server)的IP与DNS。

    更多相关Subject-Alternative-Name的介绍:https://www.openssl.org/docs/man1.0.2/apps/x509v3_config.html#Subject-Alternative-Name

    (3) 在[ CA_default] 节点下取消对copy_extensions= copy 的注释

    2) 创建CSR

    openssl req -new -key server.key -out server.csr -config {yourpath}/openssl.cnf -extensions v3_req

    注意:此时需要输入除Common Name (eg, YOUR name) []外与创建CA根证书时相同的信息。此处Common Name 应该输入服务器(Server)的Ip或域名(与在浏览器地址栏需要访问的保持一致)

  3. 使用CA根证书签名CSR
    openssl x509 -req -in server.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out server.crt -days 500 -sha256 -extensions v3_req -extfile openssl.cnf

注意: server.crt 的时间期限(-days)不能超过CA根证书的时间期限

完成以上步骤以后,使用自签证书再次访问服务器时,浏览器将会信任证书。

作者:李少杰,VMware China EUC Customer Success Team

时间: 2024-10-31 05:25:37

如何使用"OpenSSL"自签证书(Self-Sign Certificate)的相关文章

iOS实用技巧 - AFNetworking2安全的使用自签证书访问HTTPS

友情提示:本文使用的AFNetworking是最新git pull的2.3.1版本,如果想确认你机器上的AFNetworking版本,请打git tag命令查看. 绝大部分iOS程序的后台服务都是基于RESTful或者WebService的,不论在任何时候,你都应该将服务置于HTTPS上,因为它可以避免中间人攻击的问题,还自带了基于非对称密钥的加密通道!现实是这些年涌现了大量速成的移动端开发人员,这些人往往基础很差,完全不了解加解密为何物,使用HTTPS后,可以省去教育他们各种加解密技术,生活轻

创建CA自签证书及发证

创建所需要的文件. cd /etc/pki/CA目录中,在此目录中 touch index.txt文件 echo 01 > serial CA自签证书 (umask 077;openssl genrsa -out private/cakey.pem 2048)这一步是建立私钥, openssl req -new -x509 -key private/cakey.pem -days 7300 -out cacert.pem 这里会进入交互式界面,让你输入国家,省份,城市,公司,部门,网站,邮箱地址

[证书服务器 第二篇] 基于OpenSSL 在 CentOS6 系统上 搭建自签证书服务,并应用于Web容器

第一部分:概述 .. 第二部分:系统准备 1 操作系统 CentOS 6.x IP: 2 安装openssl yum install -y openssl 3 安装jdk 从官网下载JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 此处下载的是  jdk1.8    上传到CentOS6中,解压到/opt/jtools/java/目录下 配置环境变量 vim ~/.bas

填坑:Windows下使用OpenSSL生成自签证书(很简单,一个晚上搞明白的,让后来者少走弯路)

最近在学习中发现openssl 中有个坑,所有的教程都是openssl genrsa -des3 -out private.key 1024,但是产生的证书,npm start 之后就报错如下: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt 嗦了一个晚上,似乎只要把加密方式-des3取消之后,问题就消失了. 正确的配置过程如下: 1.openssl genrsa -out private.key

自签证书的创建与导入

1.创建根秘钥 openssl genrsa -outca.key 20482.创建根证书 openssl req -new -x509 -days 36500 -sha256 -keyca.key -outopenas.crt -subj "/C=CN/ST=Jiangsu/L=Nanjing/O=HuaweiCA/OU=112.13.167.7"3.创建SSL证书私匙 openssl genrsa -outserver.key 2048位4.建立SSL证书 openssl req

Netty5使用自签证书实现SSL安全连接

这次使用的Netty是最新的5.0 Alpha2版本,下载地址是:http://dl.bintray.com/netty/downloads/netty-5.0.0.Alpha2.tar.bz2,发布时间是2015年3月,到现在快一年了,咋还不更新呢?有些奇怪…… 制作一张自签证书(jks格式) #keytool -genkey -keysize 2048 -validity 365 -keyalg RSA -dnam e "CN=gornix.com" -keypass 654321

使用OpenSSL创建自己的CA root certificate

在密码学中,CA(Certificate Authority,认证机构)是指一个被多个用户信任的机构,该机构能够创建和指派公钥证书. 为规范起见,我们先介绍本文可能涉及的术语, asymmetric cryptography: 非对称密码学(或公开密钥加密,公钥加密),密钥涉及公钥和私钥组成的密钥对: key pair: 密钥对,非对称密码学中的一对公/私密钥: private key: 私钥,只应该有所有者才知道的那个密钥: public key: 公钥(公开密钥),在非对称加密体系中公开给其

OpenSSL 下载和私钥证书、CERTIFICATE证书生成

openssl 是生成私钥和公钥证书的重要工具. Windows如何安装OpenSSL: 官网:https://www.openssl.org/community/mailinglists.html  需要自己下载编译. exe安装文件下载地址:https://slproweb.com/products/Win32OpenSSL.html 选择 Win64 OpenSSL v1.1.1d 43M的完整版本. 生成证书命令: 1.1 生成私钥命令: openssl>genrsa -aes256 -

Linux的加密认证功能以及openssl详解

一.详细介绍加密.解密技术 现在的加密/解密技术主要有三种:对称加密,非对称加密,和单向加密 这三种加密解密技术的组合就是现在电子商务的基础,它们三个有各自最适合的领域,而且所要完成的功能也是不同的,大家都知道,只要我们连上互联网,那么我们就相当于大门洞开,我们的一些隐私,跟其他人对话内容等都有可能会被人窃听,最常见的比如man in the middle(中间人),它主要是因为双方身份无法验证的时候回话被劫持造成的,就是说通信双方都以为是在跟对方交流,其实内容都可能已经被这个“中间人”修改过,