zoukankan      html  css  js  c++  java
  • 创建证书

    java 证书工具keytool生成自签名证书和自签CA证书

    https://www.jianshu.com/p/8e065153f315

    查看证书详情:
    keytool -list -v
    -keystore C:/Users/lt32806/test.jks
    -storepass changeit
    打印证书信息:
    keytool -list -rfc
    -alias x.nam.nsroot.net
    -keystore C:/Users/lt32806/test.jks
    -storepass pD86LbNeH1
    keystore文件生成cer文件:
    keytool -export -alias x.nam.nsroot.net
    -keystore C:/Users/lt32806/test.jks
    -file C:/Users/lt32806/tm-api.cer
    -storepass pD86LbNeH1
    导入证书文件
    keytool -import -trustcacerts
    -keystore www.mydomain.com_keystore.jks
    -storepass mypassword
    -alias www.mydomain.com
    -file www.mydomain.com_cert.cer

    生成证书文件:
    keytool -genkey -alias x.nam.nsroot.net
    -keyalg RSA

    -sigalg SHA256withRSA
    -storepass changeit
    -keystore C:/Users/lt32806/test.jks
    -storetype jks
    -validity 365
    -dname "CN=x.nam.nsroot.net, OU=Network Center, O=SHU, L=ZB, ST=SH, C=CN ":

    jks文件转换成pfx文件:
    keytool -v -importkeystore
    -srckeystore C:/Users/lt32806/test.jks
    -srcstoretype jks -srcstorepass pD86LbNeH1
    -destkeystore C:/Users/lt32806/server.pfx -deststoretype pkcs12 -deststorepass changeit -destkeypass changeit
    -alias x.nam.nsroot.net

    openssl pkcs12 -in C:/Users/lt32806/server.pfx -out C:/Users/lt32806/server.pem -passin pass:changeit -passout pass:changeit
    用记事本打开PEM格式文件,从PEM格式的certificate chain中取出私钥,保存为privateKey.key(这个只是一个过渡文件,下面才是最终的KEY)
    openssl rsa -in C:/Users/lt32806/privateKey.key -check

     -------------------------------------------用根证书签发的证书,带dns

    省略号

    Certificate chain length: 3

    Certificate[1]:2级证书签的3级证书
    Owner: CN=省略号

    省略号

    #10: ObjectId: 2.5.29.17 Criticality=false
    SubjectAlternativeName [
    DNSName: x
    DNSName: x.nam.nsroot.net
    DNSName: a
    DNSName: a.nam.nsroot.net
    ]

    省略号

    Certificate[2]:省略号 根证书签的2级证书

    Certificate[3]:省略号 根证书

    ------------------------------------------cfssl创建证书

    2.3.1.安装cfssl
    wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -O /usr/bin/cfssl
    wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -O /usr/bin/cfssl-json
    wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -O /usr/bin/cfssl-certinfo
    chmod +x /usr/bin/cfssl*
    
    2.3.2.创建生成ca证书csr的json配置文件
    mkdir /opt/certs
    vi  /opt/certs/ca-csr.json
    {
        "CN": "OldboyEdu",
        "hosts": [
        ],
        "key": {
            "algo": "rsa",
            "size": 2048
        },
        "names": [
            {
                "C": "CN",
                "ST": "beijing",
                "L": "beijing",
                "O": "od",
                "OU": "ops"
            }
        ],
        "ca": {
            "expiry": "175200h"
        }
    }
    
    2.3.3.生成ca证书文件
    cd /opt/certs
    cfssl gencert -initca ca-csr.json | cfssl-json -bare ca
    ll
    ca.csr  
    ca-csr.json  
    ca-key.pem
    ca.pem

    etcd证书

    创建基于根证书的config配置文件

    hdss7-200上

    [root@hdss7-200 ~]# vi /opt/certs/ca-config.json
    {
        "signing": {
            "default": {
                "expiry": "175200h"
            },
            "profiles": {
                "server": {
                    "expiry": "175200h",
                    "usages": [
                        "signing",
                        "key encipherment",
                        "server auth"
                    ]
                },
                "client": {
                    "expiry": "175200h",
                    "usages": [
                        "signing",
                        "key encipherment",
                        "client auth"
                    ]
                },
                "peer": {
                    "expiry": "175200h",
                    "usages": [
                        "signing",
                        "key encipherment",
                        "server auth",
                        "client auth"
                    ]
                }
            }
        }
    } 
    
    3.1.3.创建生成自签发证书的csr的json配置文件
    [root@hdss7-200 ~]# vi /opt/certs/etcd-peer-csr.json
    {
        "CN": "k8s-etcd",
        "hosts": [
            "10.4.7.11",
            "10.4.7.12",
            "10.4.7.21",
            "10.4.7.22"
        ],
        "key": {
            "algo": "rsa",
            "size": 2048
        },
        "names": [
            {
                "C": "CN",
                "ST": "beijing",
                "L": "beijing",
                "O": "od",
                "OU": "ops"
            }
        ]
    }
    
    3.1.4.生成etcd证书文件
    [root@hdss7-200 ~]# cd /opt/certs/
    [root@hdss7-200 certs]# cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=peer etcd-peer-csr.json |cfssl-json -bare etcd-peer
    
    3.1.5.检查生成的证书文件
    [root@hdss7-200 certs]# ll
    etcd-peer.csr
    etcd-peer-csr.json
    etcd-peer-key.pem
    etcd-peer.pem

    查看证书
    cfssl-certinfo -cert api-server.pem
    cfssl-certinfo -domain www.baidu.com
  • 相关阅读:
    Spring笔记②--各种属性注入
    Spring笔记①--helloworld
    Structs2笔记③--局部类型转换案例
    Struct2笔记②--完善登陆代码
    Structs2笔记①--structs的背景、structs2框架的意义、第一个helloworld
    软件项目的开发之svn的使用
    Java基础第一节.Java简介
    Hibernate笔记④--一级二级缓存、N+1问题、saveorupdate、实例代码
    Hibernate笔记③--集合映射、组合映射、联合主键、查询案例
    Hibernate笔记②--hibernate类生成表、id生成策略、级联设置、继承映射
  • 原文地址:https://www.cnblogs.com/tonggc1668/p/13692830.html
Copyright © 2011-2022 走看看