Skip to content

Centralized management of SSL certificate expiration dates for each domain

Notifications You must be signed in to change notification settings

cybist/ssl_cert_checker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ssl_cert_checker

各ドメインのSSL証明書の有効期限を一元管理します。
日次バッチで、設定ファイルに登録されたドメインリストを元にopensslで有効期限を取得し、この情報がストアされたlevelDBを元にWEBアプリで一覧表示をおこないます。

確認済動作要件

  • Ubuntu 16.04.7
  • Python 3.7.4
  • PHP 7.4.0
  • Vue.js 2.6.12
  • Toml 0.10.2
  • levelDB 1.3.0

インストール

sudo apt-get install libleveldb-dev

cd /usr/local/src/
git clone https://github.com/reeze/php-leveldb.git
cd php-leveldb/
phpize
./configure --prefix=/home/you/.phpenv/versions/7.4.0/lib/php/leveldb --with-leveldb=/home/you/.phpenv/versions/7.4.0/include/php/include/leveldb --with-php-config=/home/you/.phpenv/versions/7.4.0/bin/php-config
make
make install
vi ~/.phpenv/versions/7.4.0/etc/php.ini
    extension=/home/you/.phpenv/versions/7.4.0/lib/php/extensions/no-debug-non-zts-20180731/leveldb.so

sudo service php-fpm restart

sudo pip install plyvel
sudo pip install toml

# for app
mkdir ~/projects/
cd ~/projects/
git clone https://github.com/cybist/ssl_cert_checker.git ssl_cert_checker/
cd ssl_cert_checker/
vi configs/common.toml
    #有効期限切れ間近(25日前)を検知した場合にChatWorkへ自動通知する場合は
    #CW_API_TOKEN と CW_ROOM_ID を設定
    #
    #[DOMAIN_LIST]を適宜編集

cd api/
composer require yosymfony/toml

cd ../app/
vi vue.config.js
    #publicPathとpublicを適宜編集

npm install
npm run build

cd ../batch/
python ssl_check.py

sudo vi /etc/nginx/conf.dssl_cert_checker.conf
    server {
        listen 80 default;
        server_name ssl-check.yourdomain.xyz;
        return 301 https://$host$request_uri;
    }

    server {
        listen 443 ssl http2;
        server_name ssl-check.yourdomain.xyz;

        ssl_certificate /etc/letsencrypt/live/ssl-check.yourdomain.xyz/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/ssl-check.yourdomain.xyz/privkey.pem;

        access_log /home/you/projects/ssl_cert_checker/logs/ssl-check.access.log;
        error_log /home/you/projects/ssl_cert_checker/logs/ssl-check.error.log;

        location / {
            root /home/you/projects/ssl_cert_checker/app/dist;
            index index.html;
        }

        location /api/ {
            root /home/you/projects/ssl_cert_checker/api;
            index index.php;
            try_files $uri $uri/ /index.php?$args;
        }

        location ~ \.php$ {
            root /home/you/projects/ssl_cert_checker/api;
            index index.php;
            try_files $uri = 404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass   unix:/home/you/.phpenv/versions/7.4.0/var/run/php-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }

sudo nginx -t
sudo service nginx restart

crontab
    #毎日04:05に更新
    5 4 * * * cd /home/you/projects/ssl_cert_checker/batch/ && /usr/local/bin/python3.7 ssl_check.py & > /dev/null 2>&1

ブラウザで以下にアクセスして、一覧画面が表示されれば成功です。

https://ssl-check.yourdomain.xyz/

ssl_cert_checker

About

Centralized management of SSL certificate expiration dates for each domain

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published