証明書の有効期限を確認する Python スクリプト
pyOpenSSL は OpenSSL の Python 用ラッパーです。 pyOpenSSL を使うことで python のコード内から OpenSSL を利用することが可能です。 今回は pyOpenSSL を利用して「Python から証明書の有効期限を取得する」サンプルをメモしておきます。
pyOpenSSL は OpenSSL の Python 用ラッパーです。 pyOpenSSL を使うことで python のコード内から OpenSSL を利用することが可能です。 今回は pyOpenSSL を利用して「Python から証明書の有効期限を取得する」サンプルをメモしておきます。
Python で pip でインストール出来る CLI ツールを作成する手順をメモしておきます。
以前に Python + responder + gunicorn + systemd + Nginx で Web アプリを起動する というメモを書きました。 Apache2 + responder に置き換えた内容で改めてメモしておきます。 Python アプリケーションは venv 環境の中に作成します。
responder でアプリケーションを書いても AttributeError: module 'typesystem' has no attribute 'SchemaDefinitions'
というエラーになる場合があります。 例えば以下のように pip で gunicorn や responder をインストールせずにインストールし、アプリケーションを実行した場合にエラーになるかも知れません。
Python で venv 環境を作成した際、該当ディレクトリに移動する毎に source venv/bin/activate
する必要があります。 direnv を使うことでこれを自動化することが出来ます。 direnv は現時点で Release v2.31.0 が最新ですがバイナリが登録されていない為、今回は Release v2.30.3 を利用します。 尚、今回は Ubuntu 20.04LTS 上でテストしました。
batfish に同梱されているサンプルスクリプトや、インターネット上で見かけるスクリプト例は「スナップショットの有無に関わらず、スナップショットを生成する」ものが多いと思います ("例" なので、そういうものなのだと思います)。 仮に何度もスクリプトを実行し直す場合は、「コンフィグに変化が無いのであれば、毎回のスナップショット再作成は不要」という場合もあると思います。 そういった場合の実装例をメモしておきます。
例として Question には ipOwners を利用していますが、どの Question を利用してもスナップショット初期化部分の考え方は同じです。
Python でディレクトリを再帰検索し、ハッシュ値を取得するサンプルコードをメモしておきます。 ハッシュ値の計算には hashlib を使い、アルゴリズムには SHA1 を利用しています。
Python3 で標準ライブラリの argparse を使うことで「サブコマンドを理解出来るコマンド」を実装することが出来ます。 今回はサンプルスクリプトと実行例をメモしておきます。
以前に Ubuntu 21.04 へ Python 3.10 をインストールする というメモを書きました。 Ubuntu 20.x 系の標準リポジトリでは現時点で Python 3.10 系がリリースされていない為、Python 3.9 をインストールする手順をメモしておきます。
1 2 |
|
venv で Python の仮想環境を作成する例は以下の通りです。
1 2 3 4 5 |
|
Python は標準の tarfile モジュールで gzip、bz2、tar などの読み書きを行うことが出来ます (zip を扱う場合は zipfile モジュール)。