Apacheにて自己証明書でSSLを実現する

f:id:rankasan:20170317104353p:plain

開発なんかでLinuxサーバでSSLを使う時、SSL自己証明書(通称オレオレ証明書)を作るケースが多いと思います。何回もやっているんですが、毎回手順を忘れてしまうんですよね。という訳でメモがてら手順を書き残しておきます。ちなみにOSはカゴヤVPSのCentOSになります

秘密鍵(server.key)の生成

# cd /etc/pki/tls/certs #場所はお好みで
# openssl genrsa -aes128 -out server.key 2048

パスフレーズが求められるので任意に入力。当然ながら覚えておく事。以上で秘密鍵が作成されました

署名要求(server.csr)の生成

# openssl req -new -key server.key -sha256 -out server.csr

署名要求情報入力が求められる。オレオレ証明書なら適当でよい

項目内容
Country Name 国名 JP
State or Province Nam 都道府県 Tokyo
Locality Name 市町村区 Minato-ku
Country Name 組織名 example Co.,Ltd.
Organizational Unit Name 組織単位名 example team
Common Name コモンネーム(ドメイン名) www.example.com
Email Address メールアドレス (空白)
A challenge password 破棄パスワード (空白)
An optional company name 別組織名 (空白)

全て空白でもよいがコモンネームにはドメイン名を入力しておいた方が無難。WindowsからWebDAVを利用したい時に問題になったりします

証明書(server.crt)の生成

# openssl x509 -req -days 365 -sha256 -in server.csr -signkey server.key -out server.crt

証明書の内容が表示されパスフレーズの入力が求められるので、秘密鍵のパスフレーズを入力。以上で完了です。簡単なんですけどね、頻繁にやることではないので、すぐ忘れちゃいます…

ApacheのSSL設定

yumでSSLをインストールしていると、/etc/httpd/conf.d/ssl.confが出来ていると思います。これに生成した秘密鍵、証明書を設定します

#   Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate.  If
# the certificate is encrypted, then you will be prompted for a
# pass phrase.  Note that a kill -HUP will prompt again.  A new
# certificate can be generated using the genkey(1) command.
SSLCertificateFile /etc/pki/tls/certs/server.crt

#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you've both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
SSLCertificateKeyFile /etc/pki/tls/certs/server.key

後は再起動で完了です。再起動時にパスフレーズを要求されます

# service httpd restart

httpsで繋がれば成功ですね。iptablesを使っている場合は443を開けることをお忘れなく(私はハマりました…)

Apacheクックブック 第2版 ―Webサーバ管理者のためのレシピ集

Apacheクックブック 第2版 ―Webサーバ管理者のためのレシピ集

 
プライバシーポリシー