ConoHa(コノハ)のVPSでSSL証明書の取得を行いHTTP通信できるようにした構築まとめ
はじめに
ボタンをポチポチ押してSSL化する方法ではなくコマンドを使用して構築する方法を説明いたしますのである程度のサーバサイドの知識がある向けに書きます。
VPSの構築をマスターする手順書 in ボクとサーバの2週間戦争。
http://sharetube.jp/article/4642/
このまとめは Programmer box の記事です ProgrammerBOX -プログラマーボックス-http:programmerbox.comプログラマーボックスは主にPHP,CSS3,JavaScriptのコード...
このまとめを見て、ある程度サーバを構築できればオッケーです。
環境
・ConoHaでvpsを作成・OSはcentOS6.9
・最低限の構築しかしてない(ポート設定、webサーバ構築)
追記centOS6.10でやるとちょいちょいエラーになります
なので、追記でエラー回避を書きました
その前に・・・この記事は@yoshizaki_kkgkさんが書いた記事をほぼほぼ模範して書きました
それでも足りない部分がございましたので間違いを修正し、足りない箇所を加筆して仕上げました。
SSL証明書購入の前準備
まずSSL証明書を購入といきたいところですが、この前にサーバー側で準備をしておく必要があります。この準備をしておかないと、手戻りが発生したりするので。
事前に準備する物は CSR(Certificate Signing Request)です。
日本語では、署名要求と呼ばれます。
必要なモジュールのインストール
秘密鍵使い回す際にサーバーを変えた時もmod_ssl、opensslインストールは必須となります。
yum install mod_sslyum install openssl
秘密鍵の作成
CSR作成には、まず秘密鍵が必要となります。秘密鍵を管理しやすいように、ディレクトリを作成します。
※ /etc/httpd/conf はApacheの構成ファイルを格納している場所です。
cd /etc/httpd/confmkdir ssl.key
cd ssl.key
$ openssl genrsa -des3 -out server.key 2048
Generating RSA private key, 2048 bit long modulus
.........................................................................+++
...................................+++
e is 65537 (0x10001)
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:
求められるパスワードに関しましてはできるだけ長いランダムなパスワードにしましょう個人的には1Passwordというアプリで32文字のパスワードを生成しました。
追記一生使用するパスワードなので保存しといてください
CSR作成
CSR用のディレクトリを作成
cd /etc/httpd/conf
mkdir ssl.csr
$ openssl req -new -key ssl.key/server.key -out ssl.csr/server.csrEnter pass phrase for ssl.key/server.key:
You are about to be asked to enter information that will be incorporatedinto 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]:Shinagawa-ku Organization Name (eg, company) [Default Company Ltd]:Carat Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server hostname) []:www.caratinc.jp Email Address []:yourmail@example.com
Please enter the following "extra" attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
作成されたCSRを確認ls ssl.csr/
server.csr
cat ssl.csr/server.csr
-----୨୧-----୨୧-----୨୧-------BEGIN CERTIFICATE REQUEST-----୨୧-----୨୧-----୨୧-------AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-----୨୧-----୨୧-----୨୧-------END CERTIFICATE REQUEST-----୨୧-----୨୧-----୨୧-------
-----୨୧-----୨୧-----୨୧-------BEGIN CERTIFICATE REQUEST-----୨୧-----୨୧-----୨୧------- から-----୨୧-----୨୧-----୨୧-------END CERTIFICATE REQUEST-----୨୧-----୨୧-----୨୧------- までがこれからの申込みに必要なので、エディターあたりにコピーすると後で楽です。
SSL証明書の購入~認証ファイルのダウンロード
https://qiita.com/yoshizaki_kkgk/items/e6f39a5bfb99900b44b2
authenticity_token
この章に関しましては、引用元をご覧になってください。
認証ファイルをサーバーに配置
つぎに、ダウンロードしたファイルをサーバー上に配置します。配置する場所は変わる可能性があるので公式の情報を調べてください。
現時点(2019年04月23日)での配置はこちらになっております。
http://example.com/.well-known/pki-validation/ランダムな文字列.txt
or
https://example.com/.well-known/pki-validation/ランダムな文字列.txt
cd /var/www/html/ ディレクトリ作成
mkdir .well-known
cd .well-known
mkdir pki-validation
cd pki-validation
vi fileauth.txt
ローカルのファイルの中身をコピペ
またはFTPなどのアップロードアプリで作成してもオッケーです。
これでOKです。一応、アクセスしてみて、ファイルが配置されているか確認しておきましょう。
http://example.com/.well-known/pki-validation/fileauth.txt
これでブラウザ上に、ファイルの中身が表示されれば配置に成功しています。
あとは、さくらインターネット側がこの認証ファイルが配置されていることを自動的に徘徊して確認していますので、3分ほど待ちます。
出典:さくらVPSにSSL証明書を導入しHTTPS通信の構築
自分の場合は15分ほどかかりました。
上記の画面のように、利用中になれば認証ファイルが認証されたことになります。「サーバー証明書」から「サーバー証明書DL」をクリックし、サーバー証明書をローカルへダウンロードしましょう。
server.crt というファイルがダウンロード出来るはずです。
サーバー証明書の配置
認証ファイルと同様に、ローカルにダウンロードした server.crt をリモートにコピーしていきましょう。
サーバー証明書の配置
cd /etc/httpd/conf
mkdir ssl.crt
サーバー証明書用のディレクトリも作成
cd ssl.crt/
vi server.crt
追記 Apache 2.4.8以降から設定が変更されました
Apache 2.4.8 から中間CA証明書を指定するSSLCertificateChainFile ディレクティブが廃止されました。中間CA証明書、およびクロスルート証明書(オプション)はサーバ証明書と一つの証明書ファイルとしてまとめて、SSLCertificateFileディレクティブに指定してください。
server.crt
サーバー証明書
↓
-----୨୧-----୨୧-----୨୧-------BEGIN CERTIFICATE-----୨୧-----୨୧-----୨୧-------AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-----୨୧-----୨୧-----୨୧-------END CERTIFICATE-----୨୧-----୨୧-----୨୧-------
中間CA証明書
↓
-----୨୧-----୨୧-----୨୧-------BEGIN CERTIFICATE-----୨୧-----୨୧-----୨୧-------AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-----୨୧-----୨୧-----୨୧-------END CERTIFICATE-----୨୧-----୨୧-----୨୧-------
これで証明書の配置は完了です。
また、サーバー証明書以外にも中間証明書というものが必要であり、たとえばラピッドSSLの場合は、認証局からメールがくるのですが、こちらから中間証明書を取得でき、同様にサーバー上にファイルを作成します。
こちら です。