OpenSSL生成CA证书及终端用户证书

环境

  • FreeBSD 11.1-RELEASE
  • OpenSSL 1.0.2K

步骤

1. 生成CA根证书

1.1 准备ca配置文件,得到ca.conf

vim ca.conf

内容如下

[ req ]
default_bits       = 4096
distinguished_name = req_distinguished_name

[ req_distinguished_name ]
countryName                 = Country Name (2 letter code)
countryName_default         = CN
stateOrProvinceName         = State or Province Name (full name)
stateOrProvinceName_default = JiangSu
localityName                = Locality Name (eg, city)
localityName_default        = NanJing
organizationName            = Organization Name (eg, company)
organizationName_default    = Sheld
commonName                  = Common Name (e.g. server FQDN or YOUR name)
commonName_max              = 64
commonName_default          = Ted CA Test

1.2 生成ca秘钥,得到ca.key

openssl genrsa -out ca.key 4096

1.3 生成ca证书签发请求,得到ca.csr

openssl req \  -new \  -sha256 \  -out ca.csr \  -key ca.key \  -config ca.conf

配置文件中已经有默认值了,shell交互时一路回车就行。

1.4 生成ca根证书,得到ca.crt

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

2. 生成终端用户证书

2.1 准备配置文件,得到server.conf

vim server.conf

内容如下

[ req ]
default_bits       = 2048
distinguished_name = req_distinguished_name
req_extensions     = req_ext

[ req_distinguished_name ]
countryName                 = Country Name (2 letter code)
countryName_default         = CN
stateOrProvinceName         = State or Province Name (full name)
stateOrProvinceName_default = JiangSu
localityName                = Locality Name (eg, city)
localityName_default        = NanJing
organizationName            = Organization Name (eg, company)
organizationName_default    = Sheld
commonName                  = Common Name (e.g. server FQDN or YOUR name)
commonName_max              = 64
commonName_default          = www.ted2018.com

[ req_ext ]
subjectAltName = @alt_names

[alt_names]
DNS.1   = www.ted-go.com
DNS.2   = www.ted2018.com
IP      = 192.168.93.145

注意Chrome 58以后不再使用CN校验地址(就是就是浏览器地址栏URL中的那个地址host)了,而是使用SAN,注意配置里写对。

IE 11还是使用CN

火狐还是有些问题,待排查。

2.2 生成秘钥,得到server.key

openssl genrsa -out server.key 2048

2.3 生成证书签发请求,得到server.csr

openssl req \  -new \  -sha256 \  -out server.csr \  -key server.key \  -config server.conf

配置文件中已经有默认值了,shell交互时一路回车就行。

2.4 用CA证书生成终端用户证书,得到server.crt

openssl x509 \  -req \  -days 3650 \  -CA ca.crt \  -CAkey ca.key \  -CAcreateserial \  -in server.csr \  -out server.crt \  -extensions req_ext \  -extfile server.conf

验证

1. 配置web服务器

Web服务器选用nginx(Windows),关键配置如下

    server {
        listen       443 ssl;
        server_name  localhost;
        root    D:\websocketd-0.3.0-windows_amd64;

        ssl_certificate      server.crt;
        ssl_certificate_key  server.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            index  index.html index.htm;
        }
    }

把生成好的server.crt和server.key文件放在与nginx.conf同一目录下。

2. 改hosts

客户端机器,Windows系统本地测试,改下hosts以访问域名

C:\Windows\System32\drivers\etc\hosts

添加如下内容

127.0.0.1 www.ted2018.com

3. 添加CA根证书

右键ca.crt安装,安装到“受信任的根证书颁发机构”(不然server.crt还是不受信任的)

4. 启动nginx,浏览器访问https://www.ted2018.com

Chrome访问“使用者可选名称”里面的几个地址都是OK的(地址栏显示“连接是安全的”)

TODO

配置Websocket SSL

链接

想深入了解证书链,可参见以下链接

https://raymii.org/s/tutorials/OpenSSL_command_line_Root_and_Intermediate_CA_including_OCSP_CRL%20and_revocation.html

原文地址:https://www.cnblogs.com/nidey/p/9041960.html

时间: 2024-07-31 23:00:50

OpenSSL生成CA证书及终端用户证书的相关文章

openssl 生成私钥、申请文件,证书导入jks说明

openssl 生成私钥.申请文件,证书导入说明 1.生成私钥 openssl genrsa -out serverkey.key 1024/2048 这样生成的私钥不带密码(以后生成密钥库后,要将密码改成和密钥库密码相同) openssl genrsa -des3 -out serverkey.key 1024/2048    这样生成的带密码(密码必须和以后生成的密钥库密码相同) 2.生成申请文件 openssl req -new -key serverkey.key -out cert.c

使用openssl生成ssl(https)证书

openssl生成证书 [[email protected] key]$ pwd/app/nginx/key 生成私钥openssl genrsa -out server.key 2048 生成证书请求openssl req -new -key server.key -out server.csr 填入信息 [[email protected] key]$ openssl req -new -key server.key -out server.csr You are about to be a

Apache OpenSSL生成证书使用

最近在学习SSL协议,这次是基于Apache服务器自带的openssl来实现的 TLS:传输层安全协议 SSL:安全套接字层 KEY:私钥 CSR:证书签名请求,即公钥,生成证书时需要将此提交给证书机构,生成 X509 数字证书前,一般先由用户提交证书申请文件,然后由 CA 来签发证书 CRT:即证书,一般服务器证书server.crt和客户端证书client.crt都需要通过CA证书ca.crt进行签名 1.进行CA签名获取证书时,需要注意国家.省.单位需要与CA证书相同,否则会报:     

用Keytool和OpenSSL生成和签发数字证书

一)keytool生成私钥文件(.key)和签名请求文件(.csr),openssl签发数字证书      J2SDK在目录%JAVA_HOME%/bin提供了密钥库管理工具Keytool,用于管理密钥.证书和证书链.Keytool工具的命令在JavaSE6中已经改变,不过以前的命令仍然支持.Keytool也可以用来管理对称加密算法中的密钥. 最简单的命令是生成一个自签名的证书,并把它放到指定的keystore文件中: keytool -genkey -alias tomcat -keyalg

【转】linux下使用openssl生成 csr crt CA证书

创建测试目录 mkdir /tmp/create_key/ca cd /tmp/create_key/ 证书文件生成: 一. 服务器端 1. 生成服务器端 私钥(key文件): openssl genrsa -des3 -out server.key 1024 运行时会提示输入密码,此密码用于加密key文件(参数des3是加密算法,也可以选用其他安全的算法),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令,如果不要口令,则去除口令: mv server.key serv

linux下使用openssl生成 csr crt CA证书

本文主要借鉴和引用了下面2个地址的内容,然后在自己的机器上进行了测试和执行,并做了如下记录. ref: http://blog.chinaunix.net/uid-26760055-id-3128132.html http://www.111cn.net/sys/linux/61591.htm 创建测试目录 mkdir /tmp/create_key/ca cd /tmp/create_key/ 证书文件生成: 一.服务器端 1.生成服务器端    私钥(key文件); openssl genr

https学习笔记三----OpenSSL生成root CA及签发证书

在https学习笔记二,已经弄清了数字证书的概念,组成和在https连接过程中,客户端是如何验证服务器端的证书的.这一章,主要介绍下如何使用openssl库来创建key file,以及生成root CA及签发子证书.学习主要参考官方文档:https://www.feistyduck.com/library/openssl-cookbook/online/ch-openssl.html# 一.openssl 简介 openssl 是目前最流行的 SSL 密码库工具,其提供了一个通用.健壮.功能完备

openssl生成ssl证书

x509证书一般会用到三类文,key,csr,crt. Key 是私用密钥openssl格,通常是rsa算法. Csr 是证书请求文件,用于申请证书.在制作csr文件的时,必须使用自己的私钥来签署申,还可以设定一个密钥. crt是CA认证后的证书文,(windows下面的,其实是crt),签署人用自己的key给你签署的凭证. 1.key的生成 openssl genrsa -des3 -out server.key 2048 这样是生成rsa私钥,des3算法,openssl格式,2048位强度

Openssl 创建CA和申请证书

Openssl 创建CA和申请证书 =============================================================================== 概述: 本章是上篇加密解密技术的续,主要介绍Openssl创建CA.申请证书.办法证书的整个操作,具体内容如下: 创建私有CA: 给节点颁发证书: 吊销证书  详情查看上篇加密解密技术:http://1992tao.blog.51cto.com/11606804/1856438 ============