認証レベル
OpenSSl
opensslは通常、ほとんどのLinuxディストリビューションにデフォルトでインストールされている。
versionの確認
openssl version
ssl -V
ディレクトリ作成
sudo mkdir /etc/apache2/ssl.key
sudo mkdir /etc/apache2/ssl.crt
補足 | 説明 | 備考 |
---|---|---|
mkdir /etc/apache2/ssl.key | ssl.keyという名前のフォルダができる。 ファイルができるわけではない。 |
秘密鍵の作成
sudo openssl genrsa -out /etc/apache2/ssl.key/server.key 2048
補足 | 説明 | 備考 |
---|---|---|
genrsa | 暗号アルゴリズムRSA | |
-des3 | 秘密鍵の暗号化トリプルDES | サーバーを再起動するたびに聞かれるため今回は使わない |
server.key | .keyという名称が多い | |
2048 | 鍵長。 1024だと認証局から受け付けてもらえない。 |
権限変更
sudo chmod 400 /etc/apache2/ssl.key/server.key
確認用
sudo cat /etc/apache2/ssl.key/server.key
公開鍵とCSRの作成
- 公開鍵はCSR生成時に添付される形で作成されるので、公開鍵単独の生成は必要無い。
- 実際にwebサーバーで指定するのは秘密鍵と公開鍵が添付されている認証局が発行した証明書となる。
csr作成
sudo openssl req -new -key /etc/apache2/ssl.key/server.key -out server.csr
補足 | 説明 | 備考 |
---|---|---|
-key | 上記で作成したkeyを指定する | -key /etc/apache2/ssl.key/server.key |
-out | 拡張子は.csrとする |
必要項目の入力
- 対話形式で入力していく
項目 | 説明 | 例 |
---|---|---|
Country Name (2 letter code) | 国名。最大2文字 | JP |
State or Province Name (full name) [Some-State] | 届け出る事業所またはサイト運営組織の都道府県 | TOKYO |
Organization Name (eg, company) | サイトの運営組織の 【正式英語名称】 を指定 | Sample.com |
Organizational Unit Name (eg, section) | 部門・部署名など 【任意の識別名称】 を指定。 ドメイン認証の場合には空欄でも可 |
|
Common Name (e.g. server FQDN or YOUR name) | サイト閲覧者へ案内しているURLの【ドメイン名】を指定。 SSL接続の際にブラウザで指定するURL(FQDN) |
sample.com |
Email Address | 空欄 | |
Please enter the following 'extra' attributesto be sent with your certificate request A challenge password | 空欄 | |
An optional company name | 空欄 |
作成したCSRの中身確認
説明 | 情報内容 | 確認コマンド |
---|---|---|
非暗号状態 | 国、都道府県、市町村、ドメイン | openssl req -noout -text -in server.csr |
暗号状態 | 暗号 | cat server.csr |
[さくらインターネット]JPRS SSLサーバ証明書
今回はさくらのSSLから JPRSドメイン認証型 990円/年 を申し込み
SAKURA internet URL: https://ssl.sakura.ad.jp/
下記情報を入力する。
- 支払方法指定
- 約款に同意
- CSRの入力
→catコマンドで中身を確認し下記のような「BEGIN・・・」の行から「END~」の行までをコピペ-----BEGIN CERTIFICATE REQUEST----- dhakldfieyriuadfatur929~lkr235n4klnioka;lkafjdkl adkljfeiotue2348t489pqrugorjrklrglgkl;gatieutoio ・ ・ ・ -----END CERTIFICATE REQUEST-----
メールに従い手続きを行う
- [さくらインターネット]JPRS SSLサーバ証明書お申込受付完了のお知らせ(手続きの流れご案内)
- SSLサーバ証明書 認証ファイルのアップロードのお願い
- [さくらインターネット]JPRS SSLサーバ証明書発行のお知らせ
SSLサーバ証明書 認証ファイルのアップロード
- さくらの会員メニュー>契約中のサービス一覧にアクセス
- 「SSL JPRS ドメイン認証型(1年)」から「SSLサーバ証明書 認証ファイル(例:cf123456789abc987654321efgd4a4b7.txt )」をダウンロードする
- 「SSLサーバ証明書 認証ファイル」を「/opt/tomcat/apache-tomcat-9.0.52/webapps/.well-known/pki-validation」に設置する
- 次項目の「サーバー証明書DL」で「サーバー証明書」と「中間CA証明書」をDLし,サーバーに設置する
- 正常に設置できた場合、例:「http://shinseidomain.com/.well-known/pki-validation/cf123456789abc987654321efgd4a4b7.txt 」例のようにアクセスすると、ブラウザにファイルの中身(例:02123456789f82abcdeb123456789d5c)が表示される。
【--追記-- 表示時間はその時々でばらばら。前回は数分だったが、今回は数時間かかった。】 - アップロード後、数分で「[さくらインターネット]JPRS SSLサーバ証明書発行のお知らせ」メールが届く
ポイント | 説明 | 備考 |
---|---|---|
「サーバー証明書」 | [ランダムな文字列].txt | 中身も[ランダムな文字列] |
「サーバー証明書」設置場所 | 「.well-known/pki-validation」は自分でディレクトリを作成する | |
「サーバー証明書」の名前や中身を変更しない。 | 同左 |
サーバー証明書DL
- 「契約情報」>「契約サービスの確認」をクリック
- 購入した証明書の「サーバ証明書」ボタンをクリック
- 「サーバ証明書DL」ボタンをクリックしてサーバ証明書をダウンロード
中間CA証明書のDL
中間CA証明書のDLおよびインストール
サーバー証明書および中間CA証明書をサーバーへ設置
上記で作成したディレクトリ(etc/apache2/ssl.crt)へ設置する。
SSLに関するモジュールを有効化する
ssl a2enmod ssl
default-ssl.confを修正する
/etc/apache2/sites-available/default-ssl.conf
# 証明書のファイル名
SSLCertificateFile:/etc/apache2/ssl.crt/server.crt
# 秘密鍵のファイル名
SSLCertificateKeyFile:/etc/apache2/ssl.key/server.key
# 中間証明書のファイル名
SSLCertificateChainFile:/etc/apache2/ssl.crt/JPRS_DVCA_G4_PEM.cer
サイト設定を有効化する
sudo a2ensite default-ssl
Apacheの再起動
sudo systemctl restart apache2
443のポートを開放する
sudo ufw status
sudo ufw allow 443
sudo ufw reload
ここまででSSL接続が可能となる。