我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Shell脚本实现生成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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

启用 apache 的 mod_ssl 之后需要有证书才能正常运作。写了个脚本来操作。首先要确定机器上已经有 openssl 。#!/bin/sh# # ssl 证书输出的根目录。sslOutputRoot="/etc/apache_ssl
2022-06-04

Shell中怎么生成SSL自签署证书

这篇文章将为大家详细讲解有关Shell中怎么生成SSL自签署证书,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。#!/bin/sh## ssl 证书输出的根目录。sslOutputRoot="
2023-06-09

Shell脚本实现批量生成nagios配置文件

如果管理的站点和服务器较多的情况下,每次修改配置文件都相当痛苦。因而想到了用shell脚本来批量生成配置文件和配置数据。下面这个脚本是为了批量生成nagios监控配置文件的一个shell脚本程序。其原理是事先定义一个shell脚本模板,然后
2022-06-04

shell脚本怎么实现快速生成xml格式

这篇文章主要介绍“shell脚本怎么实现快速生成xml格式”,在日常操作中,相信很多人在shell脚本怎么实现快速生成xml格式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”shell脚本怎么实现快速生成xm
2023-06-09

shell脚本实现随机生成10个8位密码

随机生成10个8位密码shell脚本 1.首位大写字母 2.中间六位大小写字母数字随机混合 3.第八位[0-9]#!/bin.bash for i in {1..10} do A=`head -c 500 /dev/urandom | tr
2022-06-04

shell脚本实现快速生成xml格式sitemap实例分享

用shell快速生成xml格式的sitemap地图文件,中小型网站适用。在本次案例中,生成12053条URL的sitemap文件,仅用时4.3秒!shell代码如下:cat sitemap.txt|awk 'BEGIN{print "
2022-06-04

Shell脚本怎么实现批量生成nagios配置文件

这篇文章主要讲解了“Shell脚本怎么实现批量生成nagios配置文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Shell脚本怎么实现批量生成nagios配置文件”吧!如果管理的站点和服
2023-06-09

Shell脚本实现获取网页快照并生成缩略图

获取网页快照并生成缩略图可分两步进行: 1、获取网页快照 2、生成缩略图 获取网页快照 这里我们用 phantomjs 来实现。关于 phantomjs 的详细用法可参考官方网站。http://phantomjs.org/ 1、安装 我的环
2022-06-04

无法使用自定义 crypto.Signer 实现生成 X.509 证书

php小编柚子在这里为大家介绍一个关于生成 X.509 证书的问题。有时候在使用自定义 crypto.Signer 实现生成证书的过程中,可能会遇到一个无法使用的问题。这个问题可能会让开发者感到困惑,不知道如何解决。在本文中,我们将探讨这个
无法使用自定义 crypto.Signer 实现生成 X.509 证书
2024-02-10

实现android自动化测试部署与运行Shell脚本分享

我的配置是linux 64, android4.2.2的sdk。 实现的细节都在代码注释里了,变量名以及echo的内容也是说明的一部分。 主流程为: 1.检测是否指定端口的模拟器已经运行,若有则关闭 2.创建模拟器 3.启动模拟器 4.用a
2022-06-04

有哪些实现android自动化测试部署与运行Shell脚本

本篇内容介绍了“有哪些实现android自动化测试部署与运行Shell脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!主流程为:1.检测是
2023-06-09

编程热搜

目录