`

SSL自签署证书生成脚本­

阅读更多

本人未经测试,后果自负! ­

SSL自签署证书生成脚本­

启用 apache 的 mod_ssl 之后需要有证书才能正常运作。写了个脚本来操作。首先要确定机器上已经有 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 "开始创建CA根证书..."   ­

    #   ­

    # 创建CA根证书,稍后用来签署用于服务器的证书。如果是通过商业性CA如   ­

    # Verisign 或 Thawte 签署证书,则不需要自己来创建根证书,而是应该   ­

    # 把后面生成的服务器 csr 文件内容贴入一个web表格,支付签署费用并   ­

    # 等待签署的证书。关于商业性CA的更多信息请参见:     ­

    # Verisign -

http://digitalid.verisign.com/server/apacheNotice.htm     ­

# Thawte Consulting -

http://www.thawte.com/certs/server/request.html     ­

# CertiSign Certificadora Digital Ltda. -

http://www.certisign.com.br     ­

# IKS GmbH -

http://www.iks-jena.de/produkte/ca /     ­

# Uptime Commerce Ltd. -

http://www.uptimecommerce.com     ­

# BelSign NV/SA -

http://www.belsign.be     ­

# 生成CA根证书私钥   ­

openssl genrsa -des3 -out ca.key 1024     ­

   ­

# 生成CA根证书   ­

# 根据提示填写各个字段, 但注意 Common Name 最好是有效根域名(如 zeali.net ),   ­

# 并且不能和后来服务器证书签署请求文件中填写的 Common Name 完全一样,否则会   ­

# 导致证书生成的时候出现     ­

# error 18 at 0 depth lookup:self signed certificate 错误   ­

openssl req -new -x509 -days 365 -key ca.key -out ca.crt     ­

echo "CA根证书创建完毕。"   ­

   ­

echo "开始生成服务器证书签署文件及私钥 ..."   ­

#   ­

# 生成服务器私钥   ­

openssl genrsa -des3 -out server.key 1024     ­

# 生成服务器证书签署请求文件, Common Name 最好填写使用该证书的完整域名   ­

# (比如: security.zeali.net )   ­

openssl req -new -key server.key -out server.csr     ­

ls -altrh  ${sslOutputRoot}/server.*   ­

echo "服务器证书签署文件及私钥生成完毕。"   ­

   ­

echo "开始使用CA根证书签署服务器证书签署文件 ..."   ­

#   ­

# 签署服务器证书,生成server.crt文件   ­

# 参见

http://www.faqs.org/docs/securing/chap24sec195.html   ­

#  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 参数.   ­

# 当前设置为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根证书签署服务器证书签署文件完毕。"   ­

   ­

   ­

# 使用了 ssl 之后,每次启动 apache 都要求输入 server.key 的口令,   ­

# 你可以通过下面的方法去掉口令输入(如果不希望去掉请注释以下几行代码):   ­

echo "去除 apache 启动时必须手工输入密钥密码的限制:"   ­

cp -f server.key server.key.org   ­

openssl rsa -in server.key.org -out server.key   ­

echo "去除完毕。"   ­

   ­

   ­

# 修改 server.key 的权限,保证密钥安全   ­

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

 

­

分享到:
评论

相关推荐

    本地ssl证书生成工具

    - 自签发证书:使用`openssl x509`命令,使用之前生成的私钥对证书请求进行签名,生成自签名的SSL证书。 - 安装证书:将生成的证书安装到本地的信任存储或服务器上。 4. 测试环境的应用: 在本地开发和测试环境...

    Shell脚本实现生成SSL自签署证书

    启用 apache 的 mod_ssl 之后需要有证书才能正常运作。写了个脚本来操作。首先要确定机器上已经有 openssl 。 代码如下: #!/bin/sh # # ssl 证书输出的根目录。 sslOutputRoot=”/etc/apache_ssl” if [ $# -eq 1 ]...

    域名SSL证书在线生成系统_SSL在线自签证书工具_免费SSL在线生成源码.zip

    域名SSL证书在线生成系统_SSL在线自签证书工具_免费SSL在线生成源码 源码没有后台没有数据库,源码简单便捷,上传到空间内即可使用,虚拟主机,vps,服务器,甚至二级目录,都可以,方便快捷! 随时可以生成自己的...

    ssl证书生成图形化工具.zip

    4. 签署服务器证书:使用_intermediate_证书签署CSR,得到服务器的SSL证书。 5. 安装证书:将生成的服务器证书和_intermediate_证书安装到服务器上,完成配置。 HTTPS协议是HTTP(超文本传输协议)与SSL/TLS...

    ssl.rar_SSL 证书_ssl_ssl证书_证书生成

    3. **自签发证书**:使用私钥签署CSR,生成SSL证书。 ``` openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt ``` 4. **安装和配置**:将生成的证书和私钥部署到服务器,并配置...

    SSL证书生成脚本文件

    下载该证书,执行脚本,会生成证书文件。亲测有效

    Nginx配置SSL自签名证书的方法

    首先,我们需要生成自签名SSL证书。这通常包括以下步骤: 1. **生成RSA密钥**:使用`openssl genrsa`命令创建一个带有密码保护的RSA私钥。例如,`openssl genrsa -des3 -out domain.key 1024`将生成一个1024位的...

    SSL证书在线生成系统源码

    SSL证书在线生成系统源码是实现网站安全的重要工具,它基于公钥基础设施(PKI)原理,用于在互联网上建立安全的数据传输通道。本系统允许用户通过在线方式申请并生成SSL证书,简化了传统SSL证书获取流程,提升了用户...

    Ubuntu apache httpd ssl 自签证书生成 部署访问

    Ubuntu apache httpd ssl 自签证书生成 部署访问

    私有ssl证书生成器,自动根据域名生成私有证书

    linux下,私有ssl证书生成器,通过提示的方式,自动根据域名生成私有ssl证书,包括crt,key

    ssl自签名证书生成(v1)

    自签名证书是一种特殊的SSL证书,由证书所有者自行创建并签署,主要用于测试环境或内部网络中的服务认证。 本文档详细介绍了如何使用OpenSSL工具生成自签名的SSL证书,并通过一个实际操作案例进行说明。 #### 二、...

    JDK生成ssl证书

    ### JDK生成SSL证书详解 #### 一、概述 在网络安全领域中,SSL(Secure Sockets Layer,安全套接层)证书扮演着至关重要的角色。它主要用于确保数据传输的安全性,防止信息被第三方窃取或篡改。对于企业级应用而言...

    ssl证书生成工具(sha256算法)

    注意,这个插件报告所有使用SHA-1签署的SSL证书链在2017年1月1日之后失效都是脆弱的。这与谷歌的SHA-1加密哈希算法的逐渐衰落相一致。 该工具主要用于弱哈希算法签名的SSL证书升级成sha256算法签名证书。

    免费openssl 生成ssl证书[ssl证书生成]

    使用OpenSSL工具可以生成SSL证书。具体步骤如下: 1. 生成私钥(Key):使用OpenSSL的genrsa命令,可以生成RSA私钥。例如: ``` openssl genrsa -des3 -out server.key 2048 ``` 这条命令会生成一个2048位的RSA...

    本地生成SSL证书工具CreateCertGUICreateCertGUI

    "CreateCertGUI"是一个用户界面友好的本地SSL证书生成工具,它使得开发者和系统管理员无需深入理解复杂的命令行工具就能轻松创建自己的SSL证书。这个工具的特点在于它的易用性和免费性,任何人都可以无限制地使用它...

    可运营的SSL证书在线生成系统源码,附带图文搭建教程

    SSL证书是网络安全领域中的...综上所述,这个“可运营的SSL证书在线生成系统源码”为管理员和用户提供了一套完整的解决方案,从证书申请到证书管理,全程在线操作,大大简化了SSL证书的获取流程,提高了网站的安全性。

    SSL证书生成软件、包括转换证书格式

    SSL证书生成软件、包括转换证书格式

    导入ssl证书执行脚本

    SSL证书(Secure Socket Layer Certificate)是互联网上用于验证网站身份和加密数据传输的安全证书。它通过数字签名确保了服务器身份的合法性以及数据在传输过程中的完整性。导入SSL证书至操作系统,无论是Windows...

    证书生成脚本的配置文件

    在证书生成过程中,需要用到的参数和配置,用以生成适合ESP32的SSL握手的证书

Global site tag (gtag.js) - Google Analytics