オレオレ認証局クライアント証明書の作り方(sha256)
オレオレ認証局でのクライアント証明書の作り方です。
備忘録的に…。なので雑な情報ですが…。
- CentOS 6で実施
事前準備
認証局のディレクトリを作成
mkdir /etc/pki/caCrt
設定ファイルの準備
共通
/etc/pki/tls/openssl.cnfをコピー
以下の3ファイルを作成し、「/etc/pki/caCrt」に配置する
- openssl-ca.cnf
- openssl-server.cnf
- openssl-client.cnf
すべてのファイルに以下の修正を加える
[ CA_default ]
dir = /etc/pki/caCrt
default_days = 3650
[ req ]
default_bits = 2048
default_md = sha256
それぞれのファイルを修正する
openssl-ca.cnf
[ usr_cert ]
basicConstraints = CA:TRUE
nsCertType = client, email
openssl-server.cnf
[ usr_cert ]
basicConstraints = CA:FALSE
nsCertType = server
openssl-client.cnf
[ usr_cert ]
basicConstraints = CA:FALSE
nsCertType = client, email, objsign
認証局の作成
ディレクトリ整備
$ cd /etc/pki/caCrt
$ mkdir certs
$ mkdir crl
$ mkdir newcerts
$ mkdir private
$ touch index.txt
$ touch serial
$ echo "01" > serial
以下を実行し、認証局の秘密鍵を生成する。
$ openssl req -new -config ./openssl-ca.cnf -x509 -keyout cakey.pem -out cacert.pem -days 3650 -sha256
- 認証局の秘密鍵
- cakey.pem
- 認証局の証明書
- cacert.pem (ブラウザに「信頼されたルート証明書」としてインストールしたりします。)
サーバ証明書の作成
$ openssl req -new -config ./openssl-server.cnf -sha256 -keyout ./serverkey.key -out servercareq.csr
$ openssl rsa -in ./serverkey.key -out ./serverkey_withpass.key
$ openssl ca -config ./openssl-server.cnf -md sha256 -cert cacert.pem -keyfile cakey.pem -out servercert.crt -infiles servercareq.csr
- サーバ秘密鍵
- serverkey.key
- サーバ証明書
- servercert.crt
クライアント証明書の作成
$ openssl req -new -config ./openssl-client.cnf -sha256 -keyout clientkey.key -out clientreq.csr
$ openssl ca -config openssl-client.cnf -md sha256 -cert cacert.pem -keyfile cakey.pem -out clientcert.crt -infiles clientreq.csr
$ openssl pkcs12 -export -in clientcert.crt -inkey clientkey.key -out clientcertinbrowser.pfx -name "ssltest.test.jp"
- クライアント秘密鍵
- clientkey.key
- クライアント証明書
- clientcert.crt
- クライアント証明書(クライアント端末にインストールする必要がある)
- clientcertinbrowser.pfx
Apacheの設定
/etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/caCrt/servercert.crt
SSLCertificateKeyFile /etc/pki/caCrt/serverkey.key
SSLCACertificateFile /etc/pki/caCrt/cacert.pem
SSLVerifyClient require
SSLVerifyDepth 10
$ openssl req -new -config ./openssl-server.cnf -sha256 -keyout ./serverkey.key -out servercareq.csr
$ openssl rsa -in ./serverkey.key -out ./serverkey_withpass.key
$ openssl ca -config ./openssl-server.cnf -md sha256 -cert cacert.pem -keyfile cakey.pem -out servercert.crt -infiles servercareq.csr
- serverkey.key
- servercert.crt
$ openssl req -new -config ./openssl-client.cnf -sha256 -keyout clientkey.key -out clientreq.csr
$ openssl ca -config openssl-client.cnf -md sha256 -cert cacert.pem -keyfile cakey.pem -out clientcert.crt -infiles clientreq.csr
$ openssl pkcs12 -export -in clientcert.crt -inkey clientkey.key -out clientcertinbrowser.pfx -name "ssltest.test.jp"
- クライアント秘密鍵
- clientkey.key
- クライアント証明書
- clientcert.crt
- クライアント証明書(クライアント端末にインストールする必要がある)
- clientcertinbrowser.pfx
Apacheの設定
/etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/caCrt/servercert.crt
SSLCertificateKeyFile /etc/pki/caCrt/serverkey.key
SSLCACertificateFile /etc/pki/caCrt/cacert.pem
SSLVerifyClient require
SSLVerifyDepth 10
/etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/caCrt/servercert.crt
SSLCertificateKeyFile /etc/pki/caCrt/serverkey.key
SSLCACertificateFile /etc/pki/caCrt/cacert.pem
SSLVerifyClient require
SSLVerifyDepth 10
完了
Author And Source
この問題について(オレオレ認証局クライアント証明書の作り方(sha256)), 我々は、より多くの情報をここで見つけました https://qiita.com/htakahashi/items/00439b8f63e6419c74a7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .