Google Cloud Platform (以前のGoogle Apps) でログイン認証のAPI OAuth2.0 を利用しています。ウェブアプリに組み込んでいるのですが、以前までAPIに必要なリダイレクトURIはSSL対応していないもの (http:// ではじまるURI) でも登録できたのですが、先日久しぶりに登録しようとするとSSL化された (https:// ではじまる) URIでないと登録できないようになっていました。今の所、古いものでもAPIは使えるようですがいつ使えなくなるか分かりません。そこで、こちらを参考にしてシステムのSSL化を行いました。(追記6/3:予想通り今年の9/13にはSSL化されていないURIは削除されるとの連絡が Google Developers から来ました。)
今回は既存の /etc/httpd/conf.d/ssl.conf ファイルを編集することにしました。SSLの証明書が発行され、関連するファイルが以下の通り置かれているとします。
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
SSLCertificateChainFile /etc/httpd/conf/ssl.crt/internal.cer
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
システムのルートが /var/www/html/example にあるとして、ドメインが example.biz の場合 ssl.conf ファイルに以下の項目を追加すればOKです。
# setting for example.biz
<VirtualHost *:443>
SSLEngine on
SSLProtocol all -SSLv2
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
SSLCertificateChainFile /etc/httpd/conf/ssl.crt/internal.cer
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
DocumentRoot /var/www/html/example
ServerName example.biz:443
ErrorLog /var/log/httpd/example-error_log
CustomLog /var/log/httpd/example-access_log common
AddDefaultCharset UTF-8
<Directory "/var/www/html/example/">
AllowOverride All
Options Indexes FollowSymLinks
</Directory>
</VirtualHost>
httpdを再起動すると、SSL化されていることを確認できます。httpからhttpsへ自動遷移させるには /etc/httpd/conf/httpd.conf の該当部分に以下の通り #Routing 以降を追加しhttpdを再起動すればOKです。
<VirtualHost *:80>
ServerAdmin root@example.biz
DocumentRoot /var/www/html/example
ServerName www.example.biz
ServerAlias example.biz
# Routing
RewriteEngine On
RewriteRule ^/(img|css|js|files)/(.*)$\$$ /var/www/html/example/$\$$1/$\$$2 [L]
# RewriteCond $\%${HTTP_HOST} !^example.biz$\$$[NC]
# RewriteRule ^/(.*)$\$$ http://example.biz/$\$$1 [R=301,L]
RewriteCond $\%${HTTPS} off
RewriteRule ^(.*)$\$$ https://$\%${HTTP_HOST}$\%${REQUEST_URI} [R,L]
</VirtualHost>
システムが複数ある場合も同様に ssl.conf と httpd.conf を編集すればSSL化できます。
あとはGoogle Cloud PlatformでAPI を登録するだけなのですが、以前のGoogle Appsの時とは場所が変わっているので一応メモしておきます。Google Cloud Platformにログインして
Home > Dashboard > API (APIの概要に移動)> 認証情報 > OAuth 2.0 クライアント ID
と行くと、OAuth2.0 APIの設定ができます。SSL化は時代の流れですね。社内のみで使うシステムでも今やhttpでは(セキュリティ上)良くないのでしょう。そう考えると証明書発行会社は今後も安泰でしょうね。
0 件のコメント:
コメントを投稿