亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        Shell腳本實(shí)現(xiàn)生成SSL自簽署證書

        字號(hào):


            啟用 apache 的 mod_ssl 之后需要有證書才能正常運(yùn)作。寫了個(gè)腳本來操作。首先要確定機(jī)器上已經(jīng)有 openssl 。
            代碼如下:
            #!/bin/sh
            #
            # ssl 證書輸出的根目錄。
            sslOutputRoot="/etc/apache_ssl"
            if [ $# -eq 1 ]; then
            sslOutputRoot=$1
            fi
            if [ ! -d ${sslOutputRoot} ]; then
            mkdir -p ${sslOutputRoot}
            fi
            cd ${sslOutputRoot}
            echo "開始創(chuàng)建CA根證書..."
            #
            # 創(chuàng)建CA根證書,稍后用來簽署用于服務(wù)器的證書。如果是通過商業(yè)性CA如
            # Verisign 或 Thawte 簽署證書,則不需要自己來創(chuàng)建根證書,而是應(yīng)該
            # 把后面生成的服務(wù)器 csr 文件內(nèi)容貼入一個(gè)web表格,支付簽署費(fèi)用并
            # 等待簽署的證書。關(guān)于商業(yè)性CA的更多信息請參見:
            # Verisign -
            # Thawte Consulting -
            # CertiSign Certificadora Digital Ltda. -
            # IKS GmbH - /
            # Uptime Commerce Ltd. -
            # BelSign NV/SA -
            # 生成CA根證書私鑰
            openssl genrsa -des3 -out ca.key 1024
            # 生成CA根證書
            # 根據(jù)提示填寫各個(gè)字段, 但注意 Common Name 最好是有效根域名(如 zeali.net ),
            # 并且不能和后來服務(wù)器證書簽署請求文件中填寫的 Common Name 完全一樣,否則會(huì)
            # 導(dǎo)致證書生成的時(shí)候出現(xiàn)
            # error 18 at 0 depth lookup:self signed certificate 錯(cuò)誤
            openssl req -new -x509 -days 365 -key ca.key -out ca.crt
            echo "CA根證書創(chuàng)建完畢。"
            echo "開始生成服務(wù)器證書簽署文件及私鑰 ..."
            #
            # 生成服務(wù)器私鑰
            openssl genrsa -des3 -out server.key 1024
            # 生成服務(wù)器證書簽署請求文件, Common Name 最好填寫使用該證書的完整域名
            # (比如: security.zeali.net )
            openssl req -new -key server.key -out server.csr
            ls -altrh ${sslOutputRoot}/server.*
            echo "服務(wù)器證書簽署文件及私鑰生成完畢。"
            echo "開始使用CA根證書簽署服務(wù)器證書簽署文件 ..."
            #
            # 簽署服務(wù)器證書,生成server.crt文件
            # 參見
            # sign.sh START
            #
            # Sign a SSL Certificate Request (CSR)
            # Copyright (c) 1998-1999 Ralf S. Engelschall, All Rights Reserved.
            #
            CSR=server.csr
            case $CSR in
            *.csr ) CERT="`echo $CSR | sed -e 's/\.csr/.crt/'`" ;;
            * ) CERT="$CSR.crt" ;;
            esac
            # make sure environment exists
            if [ ! -d ca.db.certs ]; then
            mkdir ca.db.certs
            fi
            if [ ! -f ca.db.serial ]; then
            echo '01' >ca.db.serial
            fi
            if [ ! -f ca.db.index ]; then
            cp /dev/null ca.db.index
            fi
            # create an own SSLeay config
            # 如果需要修改證書的有效期限,請修改下面的 default_days 參數(shù).
            # 當(dāng)前設(shè)置為10年.
            cat >ca.config <<EOT
            [ ca ]
            default_ca = CA_own
            [ CA_own ]
            dir = .
            certs = ./certs
            new_certs_dir = ./ca.db.certs
            database = ./ca.db.index
            serial = ./ca.db.serial
            RANDFILE = ./ca.db.rand
            certificate = ./ca.crt
            private_key = ./ca.key
            default_days = 3650
            default_crl_days = 30
            default_md = md5
            preserve = no
            policy = policy_anything
            [ policy_anything ]
            countryName = optional
            stateOrProvinceName = optional
            localityName = optional
            organizationName = optional
            organizationalUnitName = optional
            commonName = supplied
            emailAddress = optional
            EOT
            # sign the certificate
            echo "CA signing: $CSR -> $CERT:"
            openssl ca -config ca.config -out $CERT -infiles $CSR
            echo "CA verifying: $CERT <-> CA cert"
            openssl verify -CAfile ./certs/ca.crt $CERT
            # cleanup after SSLeay
            rm -f ca.config
            rm -f ca.db.serial.old
            rm -f ca.db.index.old
            # sign.sh END
            echo "使用CA根證書簽署服務(wù)器證書簽署文件完畢。"
            # 使用了 ssl 之后,每次啟動(dòng) apache 都要求輸入 server.key 的口令,
            # 你可以通過下面的方法去掉口令輸入(如果不希望去掉請注釋以下幾行代碼):
            echo "去除 apache 啟動(dòng)時(shí)必須手工輸入密鑰密碼的限制:"
            cp -f server.key server.key.org
            openssl rsa -in server.key.org -out server.key
            echo "去除完畢。"
            # 修改 server.key 的權(quán)限,保證密鑰安全
            chmod 400 server.key
            echo "Now u can configure apache ssl with following:"
            echo -e "\tSSLCertificateFile ${sslOutputRoot}/server.crt"
            echo -e "\tSSLCertificateKeyFile ${sslOutputRoot}/server.key"
            # die gracefully
            exit 0