GogetsslでRapidSSLを買ってるけど、いつも設定に躓くのでメモ。

[Gogetssl](https://www.gogetssl.com/)でRapidSSLを買ってるけど、いつも設定に躓くのでメモ。

購入は、[シングルドメイン](https://www.gogetssl.com/rapidssl-certificates/rapidssl-standard/)だと3年で2,500円前後。
[ワイルドカード](https://www.gogetssl.com/rapidssl-certificates/rapidssl-wildcard/)だと3年で28,000円前後。
※2016年3月12日現在

#購入

シングルドメイン
https://my.gogetssl.com/en/order/31
ワイルドカード
https://my.gogetssl.com/en/order/32
決済権限のある担当に、上記から決済までしてもらう。

#証明書作成
決済のみ実施後の状態 （シングルドメイン3年時）![決済後.png](https://qiita-image-store.s3.amazonaws.com/0/27888/f527b672-13af-8ab5-f0d2-069b12991d10.png)|
---
次に、上部「Generate Certificate」からサーバーの鍵を設定します。

![CSR送信.png](https://qiita-image-store.s3.amazonaws.com/0/27888/c919bd68-cf14-fbf3-0628-7b71932ced7e.png)|
---

「Online CSR Generator」でCSR [^1] を作れるけど、Private keyをネットでやり取りするのは危なっかしいので実装するサーバーで鍵を作ります。
参照元: https://www.geotrust.co.jp/support/ssl/csr/apache_openssl_new.html
※大本: https://knowledge.rapidssl.com/support/ssl-certificate-support/index?page=content&id=SO13985

```shell-session
# 擬似乱数の情報の生成 （ファイルの数もバージョンもそれぞれだよねの意）
[user@server]$ sudo openssl sha256 /usr/bin/* > /tmp/rand.dat
# サーバーの秘密鍵を作成（パスワードなし） ※RapidSSLでは楕円曲線暗号に未対応
[user@server]$ openssl genrsa -rand /tmp/rand.dat -out /etc/pki/tls/private/hoge-server.pkey 2048

# 3年間有効なCSRを作成 #365（日） * 3（年） + 1（うるう用） = 1096
[user@server]$ openssl req -new -key /etc/pki/tls/private/hoge-server.pkey -nodes -out /etc/pki/tls/certs/fuga.hogehoge.com.csr -days 1096
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Tokyo
Locality Name (eg, city) [Default City]:Shibuya-city
Organization Name (eg, company) [Default Company Ltd]:HogeHoge Co.,Ltd.
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:fuga.hogehoge.com
Email Address []:webmaster@hogehoge.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

# ファイル権限変更
[user@server]$ chmod 400 /etc/pki/tls/private/hoge-server.pkey
[user@server]$ cat /etc/pki/tls/certs/fuga.hogehoge.com.csr
-----BEGIN CERTIFICATE REQUEST-----
MIIBijCCARECAQAwgZExCzAJBgNVBAYTAkpQMQ4wDAYDVQQIDAVUb2t5bzEVMBMG
A1UEBwwMU2hpYnV5YS1jaXR5MRkwFwYDVQQKDBBRaVRIUkVFIENvLixMdGQuMRww
GgYDVQQDDBNpb3QtYXBwLmNvb2xxb28uY29tMSIwIAYJKoZIhvcNAQkBFhN3ZWJt
YXN0ZXJAcWkzLmNvLmpwMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEPBh7Q4YcEOgK
Dshdq7biYn2d4qd+1T81bZrsqCpsSeYjEFPGp5vGmhXXwfR3aoxD3wW5TFJfk2e5
d+h6A/qImgz2oRcKSpZseu7PMvPIeeWU1C0crA7AICAmJvxZSVTMoAAwCQYHKoZI
zj0EAQNoADBlAjEA2PMH4EuQ5Rtic7CHTgvJ50m8lsC6FxyNqTICFS3rHEufiydB
IM0cVpWlUARi/XQ2AjBM9wtAcHzLuAyIR0exX9brP+U70bYyfoP1BocHVm9YPLGP
yiGdyET/B3wPpQaGXlA=
-----END CERTIFICATE REQUEST-----
```
最後のCSRの```-----BEGIN CERTIFICATE REQUEST-----```から
```-----END CERTIFICATE REQUEST-----```も含めて「Paste your CSR」へ貼り付け。
「Validate CSR」で次へ。

![CSR送信後.png](https://qiita-image-store.s3.amazonaws.com/0/27888/7e8a6915-d081-0cbb-2745-6c3874724445.png)|
---

証明書の受け取りに
指定のドメイン、またはFQDNのメールアドレスが必要になります。
受け取るメールアドレスを選択し「Next step」で次へ。

user|ドメイン|FQDN
---|---|---|
admin|@hogehoge.com|@fuga.hogehoge.com|
administrator|〃|〃|
hostmaster|〃|〃|
postmaster|〃|〃|
webmaster|〃|〃|

![担当入力.png](https://qiita-image-store.s3.amazonaws.com/0/27888/28fd5529-05be-b906-333c-e8e0bcbdafd8.png)|
---

うちの場合は「Same as administrative contact」のチェックを外して、管理者と技術担当を別にしてます。

「Subscriber Agreement」をよく読んだら
「I agree to the Terms and Conditions」にチェックを入れて「Complete Generation」で発行

中間CA証明書
https://www.geotrust.co.jp/resources/rapidssl/repository/intermediate.html

```/etc/pki/CA/certs/rapidssl-bundle
-----BEGIN CERTIFICATE-----
MIIETTCCAzWgAwIBAgIDAjpxMA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
YWwgQ0EwHhcNMTMxMjExMjM0NTUxWhcNMjIwNTIwMjM0NTUxWjBCMQswCQYDVQQG
EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSUmFwaWRTU0wg
U0hBMjU2IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1jBEgEu
l9h9GKrIwuWF4hdsYC7JjTEFORoGmFbdVNcRjFlbPbFUrkshhTIWX1SG5tmx2GCJ
a1i+ctqgAEJ2sSdZTM3jutRc2aZ/uyt11UZEvexAXFm33Vmf8Wr3BvzWLxmKlRK6
msrVMNI4/Bk7WxU7NtBDTdFlodSLwWBBs9ZwF8w5wJwMoD23ESJOztmpetIqYpyg
C04q18NhWoXdXBC5VD0tA/hJ8LySt7ecMcfpuKqCCwW5Mc0IW7siC/acjopVHHZD
dvDibvDfqCl158ikh4tq8bsIyTYYZe5QQ7hdctUoOeFTPiUs2itP3YqeUFDgb5rE
1RkmiQF1cwmbOwIDAQABo4IBSjCCAUYwHwYDVR0jBBgwFoAUwHqYaI2J+6sFZAwR
fap9ZbjKzE4wHQYDVR0OBBYEFJfCJ1CewsnsDIgyyHyt4qYBT9pvMBIGA1UdEwEB
/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMDYGA1UdHwQvMC0wK6ApoCeGJWh0
dHA6Ly9nMS5zeW1jYi5jb20vY3Jscy9ndGdsb2JhbC5jcmwwLwYIKwYBBQUHAQEE
IzAhMB8GCCsGAQUFBzABhhNodHRwOi8vZzIuc3ltY2IuY29tMEwGA1UdIARFMEMw
QQYKYIZIAYb4RQEHNjAzMDEGCCsGAQUFBwIBFiVodHRwOi8vd3d3Lmdlb3RydXN0
LmNvbS9yZXNvdXJjZXMvY3BzMCkGA1UdEQQiMCCkHjAcMRowGAYDVQQDExFTeW1h
bnRlY1BLSS0xLTU2OTANBgkqhkiG9w0BAQsFAAOCAQEANevhiyBWlLp6vXmp9uP+
bji0MsGj21hWID59xzqxZ2nVeRQb9vrsYPJ5zQoMYIp0TKOTKqDwUX/N6fmS/Zar
RfViPT9gRlATPSATGC6URq7VIf5Dockj/lPEvxrYrDrK3maXI67T30pNcx9vMaJR
BBZqAOv5jUOB8FChH6bKOvMoPF9RrNcKRXdLDlJiG9g4UaCSLT+Qbsh+QJ8gRhVd
4FB84XavXu0R0y8TubglpK9YCa81tGJUheNI3rzSkHp6pIQNo0LyUcDUrVNlXWz4
Px8G8k/Ll6BKWcZ40egDuYVtLLrhX7atKz4lecWLVtXjCYDqwSfC2Q7sRwrp0Mr8
2A==
-----END CERTIFICATE-----
```

クロスルート証明書と中間CA証明書が結合したファイルが送られてくるが
クロスルート証明書含めない状態で```/etc/pki/CA/certs/rapidssl-bundle```に保存
※昔は必要だったため名残だと思います。

```apache

<VirtualHost *:443>
    DocumentRoot /var/local/www/fuga.hogehoge.com/public_root
    ServerName fuga.hogehoge.com
    ErrorLog /var/log/httpd/fuga.hogehoge.com-ssl_error.log
    LogLevel warn
    SSLEngine on
    Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES:!RC4
    SSLCertificateFile /etc/pki/CA/private/fuga.hogehoge.com-gogetssl.crt
    SSLCertificateKeyFile /etc/pki/tls/private/hoge-server.pkey
    SSLCertificateChainFile  /etc/pki/CA/certs/rapidssl-bundle
    BrowserMatch "MSIE [2-5]" \
             nokeepalive ssl-unclean-shutdown \
             downgrade-1.0 force-response-1.0

    CustomLog /var/log/httpd/fuga.hogehoge.com-ssl_access.log common
</VirtualHost>
```
`SSLCipherSuite` `SSLCipherSuite`あたりは自己責任でお願いします。
[^1]: 証明書発行要求(CSR : Certificate Signing Request)