CentOS8の開発環境で自前認証局のSSL署名
前にCentOS7でやったことをCentOS8の環境でやろうとしたときの覚書。
環境: CentOS 8.1.1911, nginx 1.16.1, OpenSSL 1.1.1c
CentOS8の環境だと「/etc/pki/tls/misc/CA」がない。
今ならcertbotでできるんじゃない?と公式ドキュメントを読むと「minica」というツールを使えとある。
1.MiniCAをインストール
このツールはGo言語で動くのでGolangのインストールから。
# dnf install golang
# go version
go version go1.12.12 linux/amd64
$GOPATHを設定しない方法でインストール。
# cd /opt/software
# git clone https://github.com/jsha/minica.git
# cd minica
# go build
実行してみる。
# ./minica --domains dev.hoge.jp
説明を見る
# ./minica
ルート証明書がminica.pem。
ドメイン名のディレクトリにサーバー証明書と秘密鍵がある。
検証する
# openssl verify -CAfile minica.pem dev.hoge.jp/cert.pem
2.nginxに設定
作成したサーバー証明書と秘密鍵をnginxに設定。
# cd /etc/nginx/conf.d/
# vi 01_hoge.conf
server {listen 443 ssl http2;server_name dev.hoge.jp;root /home/httpd/hoge/wordpress/;# WordPress Settinginclude conf.d/global/wordpress_restrictions.conf;include conf.d/global/wordpress_dev.conf;# SSLinclude conf.d/global/ssl_dev.conf;ssl_certificate /opt/software/minica/dev.hoge.jp/cert.pem;ssl_certificate_key /opt/software/minica/dev.hoge.jp/key.pem;}
再起動
# nginx -t
# systemctl restart nginx
# systemctl restart nginx
3.Google Chromeにルート証明書をインポート
ルート証明書minica.pemをクライアントPCにコピーする。
Google Chromeの設定で「certificates」で検索。「Manage certificates」を開く。
インポートウィザードで進めていく。
Certificate store: Trusted Root Certification Authorities
インポート後は「Trusted Root Certification Authorities」タブに「minica root ca」が表示されている。
ブラウザで表示
https://dev.hoge.jp/
無事表示された。
簡単すぎるので、駆け出しエンジニアはちゃんと認証局で署名する流れを理解しながらやった方がいいと思う。
【関連記事】