使用Shell指令碼自動構建OpenSSL的CA等

來源:互聯網
上載者:User

其實此前也寫過,但當時僅實現了自動建立CA自簽發認證等檔案,近來時間頗為寬裕,加上這個東東的用處又幾乎無所不在,因此,又在其基礎上做了些修修補補。

實現功能:

1、全自動建立CA私人機構和測試認證一套

2、在已有的CA自簽發認證或測試認證的基礎上,進行幾項調整或重新建立或給其他申請簽發等

考慮到代碼略多,因此本文先做詳細使用介紹,然後再粘貼代碼及上傳附件,心急代碼的同學,可以直接向下拉查看或下載附件。

環境: rhel5.8 32bit  openssl為光碟片yum源安裝

用法:

command [option]

可以不用選項,且選項也不多,否則就失去指令碼的意義了,使用部分有詳細介紹

/etc/sysconfig/mos_ca.conf  :設定檔,可做自訂調整,也可不用,指令碼皆有預設值

一、擷取指令碼,給執行許可權,移動到系統路徑,直接執行即可產生CA自簽發和示範認證:其會在/etc/pki/CA/裡面產生自簽發所需的所有檔案,會在/opt/mos_demo目錄內產生一套示範認證(其功能完全可用),操作如下:

[root@test scripts]# chmod 700 mos_ca.sh  [root@test scripts]# ll mos_ca.sh  -rwx------ 1 root root 3.3K Jan  8 12:24 mos_ca.sh [root@test scripts]# cp mos_ca.sh /bin/mos_ca [root@test scripts]# mos_ca     # 執行到此已OK,下列操主要就是檢查結果 [root@test scripts]# ls /etc/pki/CA/        #查看產生的CA自簽署檔案 cacert.pem      crl/            index.txt.attr  newcerts/       serial           certs/          index.txt       index.txt.old   private/        serial.old       [root@test scripts]# openssl x509 -text -in /opt/mos_demo/demo.   #查看產生的示範認證 demo.crt  demo.csr  demo.key   [root@test scripts]# openssl x509 -text -in /opt/mos_demo/demo.crt  #查看剛才指令碼簽署的認證 Certificate:     Data:         Version: 3 (0x2)         Serial Number: 1 (0x1)         Signature Algorithm: sha1WithRSAEncryption         Issuer: C=CN, ST=Henan, L=Zhengzhou, O=Youguess, OU=Tech, CN=ca.mos.com/emailAddress=root@mos.com         Validity             Not Before: Jan  8 05:54:52 2013 GMT             Not After : Jan  8 05:54:52 2014 GMT         Subject: C=CN, ST=Henan, O=Youguess, OU=Tech, CN=demo.mos.com .......

二、當系統已有CA自簽署和示範認證已存在時,再次執行指令碼,會提示是否將原來的檔案,以時間命名備份到其目前的目錄,具體如下

[root@test opt]# mos_ca  CA existe,Continue? y: Move file; n-> Quit. [y|n] y  #輸入y移動檔案,n退出Demo certificate existe, Continue? y: Move file; n: Quit. [y|n] y  #同上[root@test opt]# ls /etc/pki/CA/ 2013-01-08-13:54:48tmp/ crl/                    index.txt.old           serial                   cacert.pem              index.txt               newcerts/               serial.old               certs/                  index.txt.attr          private/                 [root@test opt]# ls /etc/pki/CA/2013-01-08-13\:54\:48tmp/ cacert.pem      crl/            index.txt.attr  newcerts/       serial           certs/          index.txt       index.txt.old   private/        serial.old [root@test opt]# ls /opt/mos_demo/ 2013-01-08-13:54:51tmp/ demo.crt                demo.csr                demo.key                 [root@test opt]# ls /opt/mos_demo/2013-01-08-13\:54\:51tmp/demo. demo.crt  demo.csr  demo.key

三、給一個自訂網域名簽發認證,使用 -n 選項,需要注意的是,操作之前,一定要修改/etc/sysconfig/mos_ca.conf中的Dhost=“你的網域名稱”,若直接使用 -n 的話,當前CA是無法簽發的,因為其和示範認證的網域名稱內容相同是不被允許的,就像真正的CA不能為一個網域名稱頒發兩個認證給不同的客戶。示範如下:

[root@test scripts]# grep -Ev "^$|^#" /etc/sysconfig/mos_ca.conf Dname=mos       # 新建立的認證,其名字已mos開頭 Dhost=www.mos.com       # 為這個網域名稱頒發 De=root@mos.com     # 定義其郵件地址 [root@test scripts]# ll /opt/mos_demo/ [root@test scripts]# mos_ca -n 2013-01-08-13:54:51tmp/ demo.csr                mos.crt                 mos.key                  demo.crt                demo.key                mos.csr [root@test scripts]# openssl x509 -text -in /opt/mos_demo/mos.crt   #查看剛才簽發新認證 Certificate:     Data:         Version: 3 (0x2)         Serial Number: 2 (0x2)         Signature Algorithm: sha1WithRSAEncryption         Issuer: C=CN, ST=Henan, L=Zhengzhou, O=Youguess, OU=Tech, CN=ca.mos.com/emailAddress=root@mos.com         Validity             Not Before: Jan  8 06:14:00 2013 GMT             Not After : Jan  8 06:14:00 2014 GMT         Subject: C=CN, ST=Henan, O=Youguess, OU=Tech, CN=www.mos.com ..................

四、使用 -s 選項,產生不簽署的認證,用以給向別的CA機構申請,需要在設定檔中修改其國家、省份\州、城市、公司、部分、網域名稱、郵件。操作如下:

[root@test scripts]# grep -Ev "^$|^#" /etc/sysconfig/mos_ca.conf    #設定檔,做如下修改 Cny=CN          #國家 Pve=Henan       #省份/州 Cty=Zhengzhou   #城市 Bis=Youguess        #公司 Bnh=Tech        #部門 Dname=tech      #認證名字以此開頭 Dhost=tech.test.com  # 要申請的認證網域名稱 De=root@test.com   # 其郵件地址 [root@test scripts]# mos_ca -s[root@test scripts]# ls /opt/mos_demo/tech. tech.csr  tech.key

五、使用 -o 給已有的csr認證簽發請求檔案簽發,需要再設定檔中指定路徑和部分名字,例如,認證的絕對路徑為:/opt/mos_demo/tech.csr  ,在設定檔中,去掉.csr即可,如:/opt/mos_demo/tech。為剛才沒簽發的認證簽發。(再提醒一下,私人CA簽發需要合csr中填寫的國家、省份、城市、公司、部門保持一致。)操作如下:

[root@test scripts]# grep Other /etc/sysconfig/mos_ca.conf Other=/opt/mos_demo/tech [root@test scripts]# mos_ca -o[root@test scripts]# ll /opt/mos_demo/tech. tech.crt  tech.csr  tech.key        # 簽發後產生的crt檔案已出現,查看內容如下: [root@test scripts]# openssl x509 -text -in /opt/mos_demo/tech.crt  Certificate:     Data:         Version: 3 (0x2)         Serial Number: 3 (0x3)         Signature Algorithm: sha1WithRSAEncryption         Issuer: C=CN, ST=Henan, L=Zhengzhou, O=Youguess, OU=Tech, CN=ca.mos.com/emailAddress=root@mos.com         Validity             Not Before: Jan  8 06:49:53 2013 GMT             Not After : Jan  8 06:49:53 2014 GMT         Subject: C=CN, ST=Henan, O=Youguess, OU=Tech, CN=tech.test.com ...................

六、 使用CA選項,重新設定並產生CA,但不建立測試認證,需要先在設定檔中修改自簽發CA的各項屬性(國家、省份、城市、公司、部門、網域名稱、郵件等,當然,也可不配置,仍會重建,舊的被移動儲存)。操作如下:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.