zoukankan      html  css  js  c++  java
  • 生成https证书脚本

    shell脚本

    [root@localhost ~]# cat https.sh 
    #! /bin/bash
    
    hostname=192.168.186.130
    
    cd /etc/pki/ && mkdir /etc/pki/CA/
    cd /etc/pki/CA/ && mkdir /etc/pki/CA/private
    
    yum -y remove httpd &>/dev/null
    yum -y install httpd &>/dev/null
    systemctl enable --now httpd &>/dev/null
    
    (umask 077;openssl genrsa -out private/cakey.pem 2048)
    
    openssl rsa -in private/cakey.pem -pubout
    
    
    expect << EOF
        set timeout 60 
        spawn openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
        expect "letter code"                {send "CH
    "}
        expect "full name"                  {send "YN
    "}
            expect "Default City"               {send "KM
    "}
            expect "Default Company Ltd"        {send "LYJ
    "}
        expect "eg, section"                {send "tcp
    "}
        expect "hostname"                   {send "${hostname}
    "}
            expect "Email Address"              {send "123@456.com
    "}
            expect "#"                        
    EOF
    
    openssl x509 -text -in cacert.pem
    mkdir certs newcerts cr1
    touch index.txt. && echo 01 > serial
    
    cd /etc/httpd && mkdir ssl && cd ssl
    (umask 077;openssl genrsa -out httpd.key 2048)
    
    expect << EOF
    
        set timeout 60
        spawn openssl req -new -key httpd.key -days 365 -out httpd.csr
        expect "code"                 {send "CH
    "}
        expect "name"                {send "YN
    "}
        expect "Default City"           {send "KM
    "}
            expect "Default Company Ltd"    {send "LYJ
    "}
            expect "eg, section"              {send "tcp
    "}
            expect "hostname"                  {send "${hostname}
    "}
            expect "Email Address"          {send "123@456.com
    "}
            expect "password"               {send "12345
    "}
            expect "company name"           {send "
    "}
        expect "#"                          
    EOF
    
    expect << EOF
    set timeout 60
    spawn scp httpd.csr root@${hostname}:/root
    expect "password:"                {send "mf2130369588mf
    "}
    expect "#"      
    EOF
    
    expect << EOF
    set timeout 60
    spawn openssl ca -in ./httpd.csr -out httpd.crt -days 365
    expect "certificate" {send "y
    "}
    expect "commit" {send "y
    "}
    expect "#"
    EOF

    执行脚本

    [root@localhost ~]# ./https.sh 
    Generating RSA private key, 2048 bit long modulus (2 primes)
    ...................+++++
    ............................................................................+++++
    e is 65537 (0x010001)
    writing RSA key
    -----BEGIN PUBLIC KEY-----
    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3ITZaDyRe7m+Ggny//H+
    38qi/pVvMDp/KnxUQFog2oBLXc/iLRrvdwAA5A8NRJholvDmgLUIxwvVnC1n8JQF
    2DyZAoUKOfBmsg809waaHzJN+2u+JPku3NMvInq4S1AvUchqIE/c8XlV0IsKt4mj
    0pyfZhdM3ctcTnrlLH46WrOem1v54lU5JyZ0ow1xn8lLrmRVq+KcRgLBZTWBUjJY
    Kb1IY5YNBDcN7fAUezfhbaOZGd+5FiYuEahDqwnqYBeu0Rb8GQkuvbuLrwsckBq+
    pxg0i+otrhAsQaG8JNKHN55KGmBiYBIIqLdLfvn9JiTGr7pY819+CzjvkWlJYvfv
    FQIDAQAB
    -----END PUBLIC KEY-----
    spawn openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [XX]:CH
    State or Province Name (full name) []:YN
    Locality Name (eg, city) [Default City]:KM
    Organization Name (eg, company) [Default Company Ltd]:LYJ
    Organizational Unit Name (eg, section) []:tcp
    Common Name (eg, your name or your server's hostname) []:192.168.186.130
    Email Address []:123@456.com
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number:
                3d:f3:c4:91:a3:cc:05:8f:2e:fd:9e:5e:2f:e0:cd:e8:c6:17:d5:ff
            Signature Algorithm: sha256WithRSAEncryption
            Issuer: C = CH, ST = YN, L = KM, O = LYJ, OU = tcp, CN = 192.168.186.130, emailAddress = 123@456.com
            Validity
                Not Before: Apr  1 11:25:28 2021 GMT
                Not After : Apr  1 11:25:28 2022 GMT
            Subject: C = CH, ST = YN, L = KM, O = LYJ, OU = tcp, CN = 192.168.186.130, emailAddress = 123@456.com
            Subject Public Key Info:
                Public Key Algorithm: rsaEncryption
                    RSA Public-Key: (2048 bit)
                    Modulus:
                        00:dc:84:d9:68:3c:91:7b:b9:be:1a:09:f2:ff:f1:
                        fe:df:ca:a2:fe:95:6f:30:3a:7f:2a:7c:54:40:5a:
                        20:da:80:4b:5d:cf:e2:2d:1a:ef:77:00:00:e4:0f:
                        0d:44:98:68:96:f0:e6:80:b5:08:c7:0b:d5:9c:2d:
                        67:f0:94:05:d8:3c:99:02:85:0a:39:f0:66:b2:0f:
                        34:f7:06:9a:1f:32:4d:fb:6b:be:24:f9:2e:dc:d3:
                        2f:22:7a:b8:4b:50:2f:51:c8:6a:20:4f:dc:f1:79:
                        55:d0:8b:0a:b7:89:a3:d2:9c:9f:66:17:4c:dd:cb:
                        5c:4e:7a:e5:2c:7e:3a:5a:b3:9e:9b:5b:f9:e2:55:
                        39:27:26:74:a3:0d:71:9f:c9:4b:ae:64:55:ab:e2:
                        9c:46:02:c1:65:35:81:52:32:58:29:bd:48:63:96:
                        0d:04:37:0d:ed:f0:14:7b:37:e1:6d:a3:99:19:df:
                        b9:16:26:2e:11:a8:43:ab:09:ea:60:17:ae:d1:16:
                        fc:19:09:2e:bd:bb:8b:af:0b:1c:90:1a:be:a7:18:
                        34:8b:ea:2d:ae:10:2c:41:a1:bc:24:d2:87:37:9e:
                        4a:1a:60:62:60:12:08:a8:b7:4b:7e:f9:fd:26:24:
                        c6:af:ba:58:f3:5f:7e:0b:38:ef:91:69:49:62:f7:
                        ef:15
                    Exponent: 65537 (0x10001)
            X509v3 extensions:
                X509v3 Subject Key Identifier: 
                    3A:32:7C:FA:3D:86:85:E4:5D:F7:19:88:F7:0B:62:A1:09:63:D6:0A
                X509v3 Authority Key Identifier: 
                    keyid:3A:32:7C:FA:3D:86:85:E4:5D:F7:19:88:F7:0B:62:A1:09:63:D6:0A
    
                X509v3 Basic Constraints: critical
                    CA:TRUE
        Signature Algorithm: sha256WithRSAEncryption
             3c:4f:98:7f:31:1d:72:7c:ef:f0:e2:f3:73:99:a5:e0:66:4e:
             17:68:90:c9:ae:07:a6:cc:61:c8:04:56:e4:90:3f:81:95:74:
             00:68:0a:43:44:bd:8a:ee:65:48:35:8d:60:29:83:a0:01:17:
             25:ff:1a:a0:54:a6:c3:a0:83:9c:6c:5e:35:98:86:e3:95:5b:
             ca:83:a9:3e:7a:00:01:2e:c2:7d:80:32:2a:51:2b:a4:d0:9c:
             88:08:c1:70:94:6e:a3:37:5b:96:d4:82:ec:ee:63:78:c2:57:
             08:87:8b:f6:d5:ab:d7:b5:23:07:f0:77:b1:7e:d7:bd:d7:f6:
             de:71:94:5e:20:9d:97:75:19:ed:b0:90:e2:78:80:e9:66:61:
             49:5d:d8:c9:c1:0e:49:20:66:60:7f:00:1a:77:89:c7:82:bd:
             3d:52:e7:3e:f3:7c:83:74:bc:f3:f1:ea:b6:ca:5e:31:9f:0e:
             2e:1b:b2:25:6f:42:17:9c:cd:9f:1b:c0:6c:42:bf:8e:78:b1:
             77:ae:e1:94:6b:72:47:2f:55:99:18:f3:d8:2e:f3:97:c8:37:
             12:79:40:fc:7e:3a:3c:99:29:e2:d0:83:96:73:ee:12:46:3c:
             ef:70:38:16:38:1d:0e:7f:63:db:88:03:29:f2:01:ec:9f:42:
             77:1e:5c:54
    -----BEGIN CERTIFICATE-----
    MIID0zCCArugAwIBAgIUPfPEkaPMBY8u/Z5eL+DN6MYX1f8wDQYJKoZIhvcNAQEL
    BQAweTELMAkGA1UEBhMCQ0gxCzAJBgNVBAgMAllOMQswCQYDVQQHDAJLTTEMMAoG
    A1UECgwDTFlKMQwwCgYDVQQLDAN0Y3AxGDAWBgNVBAMMDzE5Mi4xNjguMTg2LjEz
    MDEaMBgGCSqGSIb3DQEJARYLMTIzQDQ1Ni5jb20wHhcNMjEwNDAxMTEyNTI4WhcN
    MjIwNDAxMTEyNTI4WjB5MQswCQYDVQQGEwJDSDELMAkGA1UECAwCWU4xCzAJBgNV
    BAcMAktNMQwwCgYDVQQKDANMWUoxDDAKBgNVBAsMA3RjcDEYMBYGA1UEAwwPMTky
    LjE2OC4xODYuMTMwMRowGAYJKoZIhvcNAQkBFgsxMjNANDU2LmNvbTCCASIwDQYJ
    KoZIhvcNAQEBBQADggEPADCCAQoCggEBANyE2Wg8kXu5vhoJ8v/x/t/Kov6VbzA6
    fyp8VEBaINqAS13P4i0a73cAAOQPDUSYaJbw5oC1CMcL1ZwtZ/CUBdg8mQKFCjnw
    ZrIPNPcGmh8yTftrviT5LtzTLyJ6uEtQL1HIaiBP3PF5VdCLCreJo9Kcn2YXTN3L
    XE565Sx+Olqznptb+eJVOScmdKMNcZ/JS65kVavinEYCwWU1gVIyWCm9SGOWDQQ3
    De3wFHs34W2jmRnfuRYmLhGoQ6sJ6mAXrtEW/BkJLr27i68LHJAavqcYNIvqLa4Q
    LEGhvCTShzeeShpgYmASCKi3S375/SYkxq+6WPNffgs475FpSWL37xUCAwEAAaNT
    MFEwHQYDVR0OBBYEFDoyfPo9hoXkXfcZiPcLYqEJY9YKMB8GA1UdIwQYMBaAFDoy
    fPo9hoXkXfcZiPcLYqEJY9YKMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL
    BQADggEBADxPmH8xHXJ87/Di83OZpeBmThdokMmuB6bMYcgEVuSQP4GVdABoCkNE
    vYruZUg1jWApg6ABFyX/GqBUpsOgg5xsXjWYhuOVW8qDqT56AAEuwn2AMipRK6TQ
    nIgIwXCUbqM3W5bUguzuY3jCVwiHi/bVq9e1Iwfwd7F+173X9t5xlF4gnZd1Ge2w
    kOJ4gOlmYUld2MnBDkkgZmB/ABp3iceCvT1S5z7zfIN0vPPx6rbKXjGfDi4bsiVv
    QheczZ8bwGxCv454sXeu4ZRrckcvVZkY89gu85fINxJ5QPx+OjyZKeLQg5Zz7hJG
    PO9wOBY4HQ5/Y9uIAynyAeyfQnceXFQ=
    -----END CERTIFICATE-----
    Generating RSA private key, 2048 bit long modulus (2 primes)
    .................................+++++
    ..........+++++
    e is 65537 (0x010001)
    spawn openssl req -new -key httpd.key -days 365 -out httpd.csr
    Ignoring -days; not generating a certificate
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [XX]:CH
    State or Province Name (full name) []:YN
    Locality Name (eg, city) [Default City]:KM
    Organization Name (eg, company) [Default Company Ltd]:LYJ
    Organizational Unit Name (eg, section) []:tcp
    Common Name (eg, your name or your server's hostname) []:192.168.186.130
    Email Address []:123@456.com
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:12345
    An optional company name []:
    spawn scp httpd.csr root@192.168.186.130:/root
    httpd.csr                             100% 1058   596.6KB/s   00:00    
    expect: spawn id exp6 not open
        while executing
    "expect "#"      "
    //这里报错了,正在更新解决
    spawn openssl ca
    -in ./httpd.csr -out httpd.crt -days 365 Using configuration from /etc/pki/tls/openssl.cnf 139978345297728:error:02001002:system library:fopen:No such file or directory:crypto/bio/bss_file.c:72:fopen('/etc/pki/CA/index.txt','r') 139978345297728:error:2006D080:BIO routines:BIO_new_file:no such file:crypto/bio/bss_file.c:79: expect: spawn id exp6 not open while executing "expect "commit" {send "y "}"
  • 相关阅读:
    转 Java高级程序员面试题
    发个说说0.0
    SpringMvc和servlet对比
    java面试数据类型
    java面试 关键字
    Ajax与传统Web开发的区别
    ssm框架常见问题
    浅谈C++多态性
    [转载]构造函数、析构函数可否声明为虚函数
    为什么不要在构造函数和析构函数中调用虚函数?
  • 原文地址:https://www.cnblogs.com/mfdsg/p/14607776.html
Copyright © 2011-2022 走看看