質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

OpenSSL

OpenSSLはSSL/TLSのプロトコルと一般的な暗号のライブラリを導入するオープンソースのソフトウェアのツールキットです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

2回答

2913閲覧

多数のSSL証明書の期限の管理方法について

Marin_MTB

総合スコア11

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

OpenSSL

OpenSSLはSSL/TLSのプロトコルと一般的な暗号のライブラリを導入するオープンソースのソフトウェアのツールキットです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

2クリップ

投稿2015/02/19 15:58

ホスティング業者なら皆さん悩まれる所だと思いますが、多数のhttpsサイトを運用しており、当然サイト毎に証明書を作ってサーバに配置しているのですが、これが10個20個ならともかく、900個以上、将来的には2000とか3000とかに膨らむ予定なのです。
そこで問題になってくるのが証明書の期限です。大体1年なのですが、取得年月日がバラバラなので、現在はExcelにまとめて管理していますが、期限切れ管理について限界を感じています。

そこで、スクリプト(bash)を作って、opensslを併用して、

lang

1for domain in $domainlist ; 2do 3 echo -n "${domain}:" 4 openssl x509 -text -noout -in ${domain}.pem | grep "Not After" | awk '{print $4,$5,$6,$7}' 5done

とかはパッと思い付くんですけど、当然これだとドメイン毎の期限がリストアップされるだけで、目視でイチイチ確認するには目が痛くなります。

そこで、例えば期限1ヶ月前のドメインだけ出力するようなスクリプトを組めればいいなーと思ったのですが、私の灰色の脳みそでは詰んでしまいました。
何か、良いアイディアがあれば、コードを見せてください、だと最高ですが、そこまで行かなくてもロジック作成のヒントとなるポインタとかがあると大変助かります。
宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

windowsの例ではありますが、下記が参考になるように思います。

http://qiita.com/nightyknite/items/c4765697602eab1fb205

opensslのくだりが、例えば"Not After : Oct 27 09:49:54 2017 GMT"みたいなのが吐かれ、一ヶ月前の日付であれば、以下で求めることはできそうですが・・・

lang

1date "+%Y/%m/%d" --date `echo "Not After : Oct 27 09:49:54 2017 GMT" | awk '{print $7,$4,$5}' | sed -e 's/Jan/01/;s/Feb/02/;s/Mar/03/;s/Apr/04/;s/May/05/;s/Jun/06/;s/Jul/07/;s/Aug/08/;s/Sep/09/;s/Oct/10/;s/Nov/11/;s/Dec/12/' | sed -e 's/ ///g'` --date "-1 month"

さらにこれをif文で判定して・・・とかやるとbashでは結構面倒に思います。
応用も利かないので、上記のサイトのを参考に別の言語を使ったほうがいいような気がします。
(どんなサーバーかわからないけど、perlかpythonであれば標準で入っていないかなぁ。。。)

投稿2015/02/19 20:30

tomomo

総合スコア430

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

date コマンドで notAfter の日付文字列を UNIX時間に変換するといいと思います。

lang

1date '+%s' --date="`openssl x509 -in ${domain}.pem -noout -enddate | sed 's/^notAfter=//'`"

後は現在の UNIX時間(date +%s)との差で判定すればいいと思います。

自分で作らなくても、探せばもっと良いツールがあるかもしれません。

投稿2015/02/20 01:36

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問