tsalakh ain sus noam Huyah ol guf

勉強会のメモ。その他備忘録。参考にさせて頂いたサイトや資料はリンクさせて頂いていますが不都合があればご連絡ください。

【技術メモ】SSL証明書を購入して設定するまで

自前のWordpressHTTPS化するまでの手順


20190807追記

ファイル認証で更新する

メール認証はメールサーバを立てて置かないといけないので、Web公開できてるならファイルの方が楽。

  • 認証局から送られてくるファイルを指定のパスで公開する
  • 依頼後すぐに送られてくる、届いてなかったら迷惑メールフォルダをチェック(これで5日待った)
  • リダイレクト、アクセス制限、認証、http->https転送などは切っておくこと

更新時にエラーが出る

1年更新をしたらエラーが出て起動できない

$ sudo cat /var/log/httpd/ssl_error_log 
[Wed Aug 07 01:04:58 2019] [warn] RSA server certificate CommonName (CN) `xxx.xyz' does NOT match server name!?
[Wed Aug 07 01:04:58 2019] [error] Unable to configure RSA server private key
[Wed Aug 07 01:04:58 2019] [error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch

原因

なんらかでkeyファイルと発行されたcrtファイルが照合できないこと

調査方法

以下が一致しないといけない

$ openssl x509 -noout -modulus -in xxx.xyz.crt | openssl md5
(stdin)= 1234567890abcdfghijklmnopqrstuvw
$ openssl rsa -noout -modulus -in XXXXkey.pem | openssl md5
Enter pass phrase for XXXXkey.pem:
(stdin)= abcdfghijklmnopqrstuvw1234567890

対処

発行し直したほうが早い。


以下、元の記事。


参考サイトはこちら

qiita.com

サーバ証明書の購入

SSLストアで好きな証明書を購入。

サーバ側でCSRを生成

CSR(Certificate Signing Request) : サーバIDを申請・取得するために認証局へ提出する「署名リクエスト」

### openssl のインストール確認
$ openssl version

### 乱数を生成して秘密鍵を作成し、CSRファイルを作成する
$ cd /usr/bin/
$ sudo ./openssl md5 * > /tmp/rand.dat
$ openssl genrsa -rand /tmp/rand.dat -des3 2048 > /tmp/2016key.pem
$ openssl req -new -key /tmp/2016key.pem -out /tmp/2016csr.pem

### 生成したCSRを確認する
$ cat /tmp/2016csr.pem
  • 生成したCSRSSLストアのサイトで購入した証明書に設定し、アクティベートする

発行されたファイルをサーバに登録する

  • 認証ファイルが発行されたら、SSLストアからダウンロードしてサーバにアップする
  • 認証が通って証明書が発行されたら、証明書もサーバにアップする
    • サーバ上の任意の場所に、任意の名前.crtファイルを作成して、証明書を貼り付ける。
    • 同様に、サーバ上の任意の場所に、任意の名前.ca.crtファイルを作成して、中間CA証明書を貼り付ける。
### mod_ssl を確認して、なければインストール
$ yum list installed | grep ssl
$ sudo yum -y install mod_ssl

### ssl.confを編集する
$ view /etc/httpd/conf.d/ssl.conf
ServerNameにドメインを指定する。
SSLCertificateFile に 任意の名前.crt を指定する。(証明書)
SSLCertificateChainFile 任意の名前.ca.crt を指定する。(中間CA証明書)
SSLCertificateKeyFile に、秘密鍵.key.pem を指定する。

### httpd を再起動する
$ sudo service httpd restart

HTTPSでアクセスできれば成功。別途、apacheの設定はHTTPをHTTPSに転送するなりしておいた方が良い。