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

    [root@yc1 ~]# cat yc_https.sh 
    #!/bin/bash
    
    hostname=192.168.23.140
    
    rm -rf /etc/pki/CA &>/dev/null
    
    mkdir -p /etc/pki/CA/privatr 
    
    cd /etc/pki/CA
    
    yum -y install expect
    
    echo '生成CA的公钥'
    (umask 077;openssl genrsa -out private/cakey.pem 2048)
    
    echo '提取CA的公钥'
    openssl rsa -in private/cakey.pem -pubout
    
    echo '生成签署证书'	
    expect << EOF
    	set timeout 30
    	spawn openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 100
    	expect "letter code"	  {send "cn
    "}
    	expect "full name"	  {send "HB
    "}
    	expect "city"    	  {send "WH
    "} 
    	expect "company"	  {send "runtime
    "}
    	expect "section"	  {send "teach
    "}
    	expect "hostname"	  {send "${hostname}
    "}
    	expect "Email"		  {send "1@2.com
    "}
    	expect "#"
    EOF
    echo '完成签署证书'
    sleep 5s
    
    openssl x509 -text -in cacert.pem
    mkdir certs newcerts crl
    touch index.txt && echo 01 > serial
    
    #需要安装httpd服务
    yum -y remove httpd &>/dev/null
    yum -y install httpd &>/dev/null
    systemctl enable --now httpd &>/dev/null
    
    echo 'httpd服务生成密钥中!'
    cd /etc/httpd && mkdir ssl && cd ssl
    (umask 077;openssl genrsa -out httpd.key 2048)
    
    echo '生成证书签署请求'
    expect << EOF
         set timeout 30
         spawn openssl req -new -key httpd.key -days 365 -out httpd.csr 
         expect "letter code"         {send "cn
    "}
         expect "full name"           {send "HB
    "}
         expect "city"                {send "WH
    "}
         expect "company"             {send "runtime
    "}
         expect "section"             {send "teach
    "}
         expect "hostname"            {send "${hostname}
    "}
         expect "Email"               {send "yc@yc.com
    "}
         expect "password"		  {send "
    "}
         expect "company name"	  {send "
    "}
         expect "#"
    EOF
    echo '完成请求'
    sleep 5s
    
    echo '签署证书中!'
    expect << EOF
         set timeout 30
         spawn openssl ca -in ./httpd.csr -out httpd.crt -days 365
         expect "certificate"        {send "y
    "}
         expect "commit"	         {send "y
    "}
         expect "#"
    EOF
    echo '完成签署'
    sleep 5s
    
    echo '修改配置文件中'
    yum -y remove mod_ssl &>/dev/null
    yum -y install mod_ssl &>/dev/null
    sed -i "s/#DocumentRoot/DocumentRoot/g" /etc/httpd/conf.d/ssl.conf
    sed -i "s/#ServerName www.example.com:443/ServerName ${hostname}:443/g" /etc/httpd/conf.d/ssl.conf
    sed -i "s#/etc/pki/tls/certs/localhost.crt#/etc/httpd/ssl/httpd.crt#g" /etc/httpd/conf.d/ssl.conf
    sed -i "s#/etc/pki/tls/private/localhost.key#/etc/httpd/ssl/httpd.key#g" /etc/httpd/conf.d/ssl.conf
    echo '配置文件修改完成'
    sleep 5s
    
    echo '重新启动httpd服务'
    systemctl restart httpd &>/dev/null
    ss -antl
    
  • 相关阅读:
    Visual Studio 2013各个版本密钥(亲测可用)
    Duilib bkimage 属性
    VC++ 文件夹的打开
    孙鑫- VC++在对话框程序中让对话框捕获WM_KEYDOWN消息
    OpenCV窗口置顶的方法
    OpenCV设置感兴趣区域(roi)
    Ubuntu 12,04安装ROS Hydro
    VC获取任务栏窗口及其子窗口句柄
    关于调用静态链接库LIB,提示重定义或库冲突的错误
    DuiLib如何禁用双击标题栏窗口最大化
  • 原文地址:https://www.cnblogs.com/Ycqifei/p/14608812.html
Copyright © 2011-2022 走看看