29
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

オレオレ認証局クライアント証明書の作り方(sha256)

Posted at

オレオレ認証局でのクライアント証明書の作り方です。
備忘録的に…。なので雑な情報ですが…。

  • 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

完了

29
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?