低価格でSSLを導入するために欠かせないRapid SSL
初心者には意外とハードルの高い自力でのSSL導入方法を説明します。
お名前.comのVPSにインストールすることを想定しています。
文中の
○○○はアカウント名
ドメイン名は○○○.comなど
になりますので、ご自分の環境に合わせて変更してください。
■下準備
証明書を受け取るために、admin@ドメイン名でメールアドレスを作り、受信できるようにしておく。
SSHでログイン(Poderosaなどを使いコマンドラインから行う)
suコマンドで管理者権限に。
[root@○○○ user]# cd /root
[root@○○○ ~]# mkdir conf
[root@○○○ ~]# cd conf
[root@○○○ conf]# mkdir ssl.key
[root@○○○ conf]# cd ssl.key
[root@○○○ ssl.key]# openssl genrsa -out ドメイン名.key 2048
↓下記のコードが生成される。
Generating RSA private key, 2048 bit long modulus
.....................................................................+++
.+++
e is 65537 (0x10001)
[root@○○○ ssl.key]# openssl req -new -key ドメイン名.key -out ドメイン名.csr
↓下記のコードが生成される。
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.
-----
↓JPは国名
Country Name (2 letter code) [GB]:JP
↓Tokyoは東京(都道府県名を入力)
State or Province Name (full name) [Berkshire]:Tokyo
↓△△△は区など、×××は町名など(英字)
Locality Name (eg, city) [Newbury]:△△△,×××
↓□□□は会社、組織名(英字)
Organization Name (eg, company) [My Company Ltd]:□□□
↓●●●は部署名(英字)
Organizational Unit Name (eg, section) []:●●●
↓www.を入れたフルパスを入力
Common Name (eg, your name or your server's hostname) []:www.ドメイン名
↓お使いのメールアドレスを入力
Email Address []:---@---.com
※「A challenge password」と「An optional company name」はブランクのままエンターを押す。
[root@○○○ ssl.key]# vi ドメイン名.csr
↓下記CSRが表示されるので、コピーしておく。
-----BEGIN CERTIFICATE REQUEST-----
~
-----END CERTIFICATE REQUEST-----
[root@○○○ ssl.key]# vi ドメイン名.key
↓下記の秘密鍵(RSA)が表示されるので、コピーしておく。
-----BEGIN RSA PRIVATE KEY-----
~
-----END RSA PRIVATE KEY-----
上記で生成されたCSR
-----BEGIN CERTIFICATE REQUEST-----
~
-----END CERTIFICATE REQUEST-----
をコピーして申請代行社の申し込みフォームCSR記入欄に貼り付け送信。
しばらく~数日すると登録完了のメールが送られてくる。
↓メール内の下記箇所をコピー。
Web Server CERTIFICATE
-----------------
-----BEGIN CERTIFICATE-----
~
-----END CERTIFICATE-----
SSHでログイン
suコマンドで管理者権限に。
[root@○○○ user]# cd /usr/local/
[root@○○○ local]# mkdir ssl
[root@○○○ local]# cd ssl
[root@○○○ ssl]# mkdir certs
[root@○○○ ssl]# cd certs
[root@○○○ certs]# vi newcert.pem
メールに記載されているWeb Server CERTIFICATEを貼り付け、保存。
[root@○○○ certs]# vi inca.pem
メールに記載されているINTERMEDIATE CERTIFICATE ADVISORYよりリンク先のprimaryとsecondaryを貼り付け、保存(2階層)。
[root@○○○ certs]# cd ../
[root@○○○ ssl]# mkdir private
[root@○○○ ssl]# cd private
[root@○○○ private]# vi ドメイン名.key
↓前もって生成した秘密鍵(RSA)を貼り付け、保存。
-----BEGIN RSA PRIVATE KEY-----
~
-----END RSA PRIVATE KEY-----
[root@○○○ private]# cd /etc/httpd/conf.d
[root@○○○ conf.d]# vi ssl.conf
↓コメントアウト
#SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /usr/local/ssl/certs/newcert.pem
↓コメントアウト
#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /usr/local/ssl/private/ドメイン名.key
↓コメントアウト
#SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
SSLCACertificateFile /usr/local/ssl/certs/inca.pem
ssl.confを保存
[root@○○○ conf.d]# cd /var/www/vhosts/ドメイン名/conf/
[root@○○○ conf]# vi httpd_vh_base.conf
↓下記コードを一番下(元からある</VirtualHost>以下)に貼り付け(111.222.33.444は使っているサーバのIPアドレスに合わせて変更)。
<VirtualHost 111.222.33.444:443>
ServerAdmin admin@ドメイン名
DocumentRoot /var/www/vhosts/ドメイン名/httpdocs
ServerName www.ドメイン名
ErrorLog /var/www/vhosts/ドメイン名/logs/error_log
SSLEngine on
SSLProtocol all
SSLCertificateFile /usr/local/ssl/certs/newcert.pem
SSLCertificateKeyFile /usr/local/ssl/private/ドメイン名.key
SSLCACertificateFile /usr/local/ssl/certs/inca.pem
ScriptAlias /cgi-bin /var/www/vhosts/ドメイン名/httpdocs/cgi-bin
<Directory "/var/www/vhosts/ドメイン名/httpdocs">
Options ExecCGI IncludesNOEXEC FollowSymLinks
AllowOverride ALL
AddHandler cgi-script .cgi .pl .rb .py
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
↓再起動
[root@○○○ conf]# /etc/rc.d/init.d/httpd restart
※SSLの導入にあたっては自己責任でお願いいたします。