【個人開発でサイト構築】複数のサイトを同時に無料でssl化【https】

へっぽこプログラマーなわたしが自分でつくったサービスを公開しようとおもいたち、準備開始です。

今回は複数のサイトを同時に無料でssl化(https)する方法を書きます。

個人開発を始めようと思っている人の参考になればと思います。

ちなみにわたしの環境です。
VPS:Conoha
OS:Ubuntu
Client:Windows10
web:apache2

SSL化とは

SSL化とは簡単にいうとhttpをhttpsにする作業です。
httpはHypertext Transfer Protocol
httpsはHypertext Transfer Protocol Secure
secureがあるかないかの違いなのですが、この違いはかなり大きいです。

暗号化されているかどうかです。

例えば、カフェなどで、よくわからないwifiに接続して、どこかのサイトにログインした場合

暗号化していないサイト(httpではじまる)でパスワードを入力するとすると、
カフェ側(wifiを提供している側)なら頑張ればパスワードは見ることが可能です

暗号化しているサイト(httpsではじまる)でパスワードを入力するとすると、
wifi提供側にもパスワードは暗号化されているので見ることができません

最近はhttpsで作っていないサイトは警告が表示されたりします。
この作業を今回無料でおこないます。

Let’s Encryptをインストール

まずは、httpの状態でブラウザでアクセスできることが前提となります。

Let’s encript をインストール

sudo apt install certbot 

Let’s encriptの設定、証明書の作成

sudo certbot certonly --webroot -w /var/www/html -d yyy.com -d www.yyy.com -w /var/www/toola/client -d toola.yyy.com -d www.toola.yyy.com -w /var/www/toolb/client -d toolb.yyy.com -d www.toolb.yyy.com

このコマンドで一気に3つのサブドメインへ証明書を作っています。

-w がwebrootの場所
-d がドメインです。

一つ目のwebroot
-w /var/www/html
-d yyy.com
-d www.yyy.com

二つ目のルート
-w /var/www/toola
-d toola.yyy.com 
-d www.toola.yyy.com

三つ目のルート
-w /var/www/toolb
-d toolb.yyy.com 
-d www.toolb.yyy.com

https用にapacheのconfを修正

cd /etc/apache2/sites-available/

修正前:toola.yyy.com.conf

<VirtualHost *:80>
    ServerName toola.yyy.com
    ServerAlias www.toola.yyy.com
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/toola/client
    ErrorLog "/home/xyz/mylogs/apache2/toola.yyy.com_error.log"
    CustomLog "/home/xyz/mylogs/apache2/toola.yyy.com_access.log" common
</VirtualHost>

修正後:toola.yyy.com.conf

<VirtualHost *:80>
 RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

</VirtualHost>
<VirtualHost *:443>
    ServerName toola.yyy.com
    ServerAlias www.toola.yyy.com
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/701redux1/client

    ErrorLog "/home/xyz/mylogs/apache2/toola.yyy.com_error.log"
    CustomLog "/home/xyz/mylogs/apache2/toola.yyy.com_access.log" common

 SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/yyy.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/yyy.com/privkey.pem
</VirtualHost>

修正前:toolb.yyy.com.conf

<VirtualHost *:80>
    ServerName toolb.yyy.com
    ServerAlias www.toolb.yyy.com
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/toolb/client
    ErrorLog "/home/xyz/mylogs/apache2/toolb.yyy.com_error.log"
    CustomLog "/home/xyz/mylogs/apache2/toolb.yyy.com_access.log" common
</VirtualHost>

修正後:toolb.yyy.com.conf

<VirtualHost *:80>
 RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

</VirtualHost>
<VirtualHost *:443>
    ServerName toolb.yyy.com
    ServerAlias www.toolb.yyy.com
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/701redux1/client

    ErrorLog "/home/xyz/mylogs/apache2/toolb.yyy.com_error.log"
    CustomLog "/home/xyz/mylogs/apache2/toolb.yyy.com_access.log" common

 SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/yyy.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/yyy.com/privkey.pem
</VirtualHost>

設定の反映

sudo a2ensite toola.yyy.com.conf
sudo a2ensite toolb.yyy.com.conf

アパッチの再起動
systemctl restart apache2.service

動作確認

urlへアクセスして動作確認

https://toola.yyy.com
https://toolb.yyy.com

証明書を自動更新

この無料の証明書は更新作業を行わないと期限がきれてしまいます。

自動更新するように設定します。

cronに設定

crontab -e
毎週日曜10:00に実行
# m h  dom mon dow   command
00 10 * * 0 root certbot renew

まとめ

複数のサイトを同時に無料でssl化【https】で行いました。

これで、アプリを世界へ公開する準備ができました。

 

おすすめのオフラインプログラミングスクールに関しては「おすすめのオフラインプログラミングスクール【無料体験あり】」で詳しく解説していますので、併せてご活用ください。

おすすめのオンラインプログラミングスクールに関しては「おすすめのオンラインプログラミングスクール【無料体験あり】」で詳しく解説していますので、併せてご活用ください。

未経験者でプログラマになりたい方に関しては「【転職】未経験者でプログラマになりたい人、なれますよ!【再現性あり】」で詳しく解説していますので、併せてご活用ください。

フリーランスエンジニアにおすすめのエージェント(いろいろ)に関しては「フリーランスエンジニアにおすすめのエージェントいろいろ」で詳しく解説していますので、併せてご活用ください。

コメント

タイトルとURLをコピーしました