☆☆ 新着記事 ☆☆

2018年12月15日土曜日

WebArena VPSで初心者がWord Pressを立ち上げる (4/7) -ドメイン名取得(無料)、SSL設定

驚きの安さに目が眩み、WebArena VPSで、Word Pressを立ち上げられるかチャレンジしてみる「ねこでもわかる(か?) VPS」 第4回目。 今回はドメイン名関連の設定です。

(項目)

 1.独自の無料ドメイン名の取得
 2.DNSの設定
 3. SSL(Let's Encrypt) の導入・設定


1.独自の無料ドメイン名の取得(参考情報)

自分はFeenomというオランダの会社から、無料のドメイン名を取得しました。
最初の選択で、希望のドメインを、最大12か月、無料で利用登録することが可能です。
(当然、12か月に設定しました。)

自分の名前を登録するのはオプションで、ニックネームだけで登録が可能です。  請求情報の登録も求められません。 ただ、連絡用のメールアドレスだけ登録する必要があります。

広告メール、迷惑メールが来るかもしれないと心配しましたが、一切、来ませんでした。
個人情報の取り扱いに厳しいEUのサイトなので、安心できる気がします。

サイトは、こちら。


*サイトは、日本語で表示されます。 あくまでも、自分の場合の参考情報です。


2.DNSの設定(参考情報)

VPSを利用するのですから、勿論、DNSサーバーを自分で構築することも可能です。
でも、管理が大変だと言われていますので、素直にレジストラーの無料DNSサービスを利用します。 複雑なことはしませんし。 (ドメイン名とIPアドレスの関連付けをする程度です。)

上のFreenomでは、取得したドメイン名の「管理画面」から、DNSレコードの登録が可能です。




3. SSL(Let's Encrypt) の導入・設定


 上記のサイトで取得して、IPアドレスを登録したドメイン名は、mossymob.tk ですが、
 このサイトを証明書つきのSSL(https://)対応にさせます。

step1: SSLで通信できるようにする。

今まで、https通信を許容するように環境を作ります。

前回、Firewallでhttps通信を許可していますが、Apache自身は、まだhttps通信を処理できません。
Apacheがhttps通信を処理する為には、'mod_ssl' モジュールが必要。

1) mod_sslがインストールされているかの確認。
 # httpd -M  

  又は
 
 #yum list installed

  で、モジュールがインストールされているか確認します。

 当然、自分の環境ではインストールされていないので、インストールします。

2) mod_sslのインストール
 root directoryで以下を実行。
   # yum install mod_ssl
 
 Total download size: 112 k
   Installed size: 224 k
   Is this ok [y/d/N]: y

 Complete!
  で、インストール完了です。

 再起動で変更を反映します。
 # systemctl restart httpd


3) インストールの確認。
[root@mk1ouin8 /]# yum list installed | grep mod_ssl
mod_ssl.x86_64                     1:2.4.6-88.el7.centos          @base

[root@mk1ouin8 /]# httpd -M
Loaded Modules:
省略
ssl_module (shared)
・・表示省略

で、システムにロードされていることが確認できます。

この段階で、ブラウザでSSLでアクセスすると

**アクセスできません**
(普通は、これでアクセスできる筈ですが、、、)

ふむ、「WebArena 管理ポータル:Wakame 」でも、ポート設定を追加しておく必要がありそうです。
これはサーバーサイドのWebHosting事業者側のFireWallにSSLのポートを開く為の設定です。(ポートは明示的に開かない限り、デフォルトでは閉じられている。)


セキュリティー・グループのアクセス設定に、以下の赤字の部分を追加します。

tcp:22,22,ip4:0.0.0.0/0
tcp:80,80,ip4:0.0.0.0/0
tcp:443,443,ip4:0.0.0.0/0




この状況で、Webに Accessすると、
 

「サイト証明書に問題がある」と表示されます。 かまわず、閲覧を続けると、サイトが表示されます。(URLは赤に塗られています。)

2021年現在:Google ChromeとMicrosoft Edgeの両方とも、SSL証明書がない段階で
https接続すると、以下の画面のようにアクセスできません。URLが赤く塗られるけどアクセスできるという事はなくなりました。





この段階では、証明書が誰にも証明されていない「おれおれ証明」なので、仕方ありません。

この証明書の問題を解決する為に、第三者が提供する「証明書発行サービス」を利用します。

4) 証明書発行サービス「Let's Encript」とは

個人サイトですから、これも無料の証明書発行サービス「Let's Encript」を利用します。

「Let'sEncrypt (リンクしてます。)」は、ドメイン名の使用権限を確認して発行する「ドメイン認証(DV)」タイプの無料のSSLサーバー証明書です。米国の非営利団体ISRG(Internet Security Research Group)が運営しています。発行スピードも早く、独自ドメインをご利用の方であれば、誰でも発行できます
 通常必要な90日ごとに更新作業が必要です。」

では、さっそくセットアップ。

5) ホームページの「Get Started」をクリック。




6)次のページの「Certbot」をクリック。


7) Certbotのページに飛びますので、そこで自分の使用している「Web Server Soft」(nginx等)と
 「OS」(ubunt等)を選択します。

 ここでは、「Apache」「CentOS/RHEL 7」を選択して進めていきます。



この過程で、epel リポジトリからのインストールが必要になります。

**epelの設定を完了している人は読み飛ばしてください。**

EPEL リポジトリとは:
CentOS 標準のリポジトリでは提供されていないパッケージを、yum コマンドでインストールすることを可能にするリポジトリのことです。 EPEL は、エンタープライズ向けのリポジトリなので、サードパーティー製リポジトリの中では信頼性の高いものになっています。
EPEL 以外のサードパーティ製リポジトリには、Remi、RPMForge があります。

このリポジトリを使えるようにします。

Fedoraプロジェクトのオリジナル・ソースからwgetで取得する方法もありますが、CentOSのExtra Packageに収納されているものを使うようにします。

[root@ /]# yum install epel-release
Total download size: 15 k
Installed size: 24 k
Is this ok [y/d/N]: 

Installed:
  epel-release.noarch 0:7-11
Complete!

この状態で yum installを使うと、常にepel リポジトリからダウンロードするようになってしまう。
通常は、OFFにして、epelレポジトリを使うときだけ、明示的に使う。

・epel レポジトリ・オフ
# vi /etc/yum.repos.d/epel.repo
[epel]
enabled=1
↓変更
enabled=0


・EPELを使う
yumにオプション--enablerepo=epel `を指定

***epelの設定を完了している人は読み飛ばしてください。 終了***

では、インストール。


# yum install --enablerepo=epel, certbot python2-certbot-apache

# certbot --apache -d mossymob.tk


(結果)
[root@localhost ~]# certbot --apache -d mossymob.tk
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): kappamobestjp@gmail.com
Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N



# systemctl restart httpd

これで、Webサイトにアクセスすると、
だめですね。

[root@ /]# certbot --apache certonly
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org
No names were found in your configuration files. Please enter in your domain
name(s) (comma and/or space separated)  (Enter 'c' to cancel): mossymob.tk www.mossymob.tk
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for mossymob.tk
http-01 challenge for www.mossymob.tk
Cleaning up challenges
Unable to find a virtual host listening on port 80 which is currently needed for Certbot to prove to the CA that you control your domain. Please add a virtual host for port 80.
[root@ /]#


[root@ /]# certbot run --apache -d mossymob.tk -d www.mossymob.tk
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for www.mossymob.tk
http-01 challenge for mossymob.tk
Cleaning up challenges
Unable to find a virtual host listening on port 80 which is currently needed for       Certbot to prove to the CA that you control your domain. Please add a virtual h      ost for port 80.

という事で、Virtual Hostの設定が必要なようです。

httpd.confの内容確認。
(補充的確認):https://community.letsencrypt.org/t/unable-to-find-a-virtual-host-listening-on-port-80/63892/3(httpd.conf にvirtual Hostの記述が必要なことを確認。)

# cat /etc/httpd/conf/httpd.conf
vhostの記述がないことを確認。


https://freepc.jp/encrypt
を参考に、以下の設定をhttpd.conf ファイルを修正します。

運用しているドメインは、mossymob.tk なので

記述追加内容)

#Added descriptions in Dec 2018 to enable Let's Encrypt work
NameVirtualHost *:80
<VirtualHost *:80>
 ServerAdmin root@mossymob.tk
 DocumentRoot /var/www/html
 ServerName mossymob.tk
< /VirtualHost>
#End of descriptions in Dec 2018 to enable Let's Encrypt work


[root@ /]# vi /etc/httpd/conf/httpd.conf

上記記述内容を、既存の記述の最後に追加


:wqで保存

結果
[root@  /]# certbot -apache -d mossymob.tk
Saving debug log to /var/log/letsencrypt/letsencrypt.log
The requested pache plugin does not appear to be installed

コマンド変更して実行。

[root@ /]# certbot run --apache -d mossymob.tk
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for mossymob.tk
Waiting for verification...
Cleaning up challenges
Failed authorization procedure. mossymob.tk (http-01): urn:ietf:params:acme:error:unknownHost           :: The server could not resolve a domain name :: No valid IP addresses found for mossymob.tk
IMPORTANT NOTES:
 - The following errors were reported by the server:
   Domain: mossymob.tk
   Type:   unknownHost
   Detail: No valid IP addresses found for mossymob.tk
   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain
   contain(s) the right IP address.

feenomのDNS設定で、ドメインのみ(Host名なし)のIPアドレスもAレコードに追加。

 
 
10分くらいで反映されます。
 
[root@ /]# certbot run --apache -d mossymob.tk
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for mossymob.tk
Waiting for verification...
Cleaning up challenges
Resetting dropped connection: acme-v02.api.letsencrypt.org
Created an SSL vhost at /etc/httpd/conf/httpd-le-ssl.conf
Deploying Certificate to VirtualHost /etc/httpd/conf/httpd-le-ssl.conf
Enabling site /etc/httpd/conf/httpd-le-ssl.conf by adding Include to root configuration
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1
- - - - - - - - - - - - - - - - - - - - -
 
これで、ブラウザから表示。
 
 
 
 
 
に、注意画面が出ることなくアクセスできるようになりました。
 
同じ手順をwww.mossymob.tk に対しても行います。
 
[root@ /]# vi /etc/httpd/conf/httpd.conf
 
#Added descriptions in Dec 2018 to enable Let's Encrypt work for www
NameVirtualHost *:80
<VirtualHost *:80>
 ServerAdmin root@mossymob.tk
 DocumentRoot /var/www/html
 ServerName www.mossymob.tk
</VirtualHost>
#End of descriptions in Dec 2018 to enable Let's Encrypt work for www

 
 
 
[root@/]# certbot run --apache -d www.mossymob.tk
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org
Cert not yet due for renewal
You have an existing certificate that has exactly the same domains or certificate name you requested and isn't close to expiry.
(ref: /etc/letsencrypt/renewal/www.mossymob.tk.conf)
What would you like to do?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Attempt to reinstall this existing certificate
2: Renew & replace the cert (limit ~5 per 7 days)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1
Keeping the existing certificate
Created an SSL vhost at /etc/httpd/conf/httpd-le-ssl.conf
Deploying Certificate to VirtualHost /etc/httpd/conf/httpd-le-ssl.conf
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://www.mossymob.tk
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=www.mossymob.tk
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/www.mossymob.tk/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/www.mossymob.tk/privkey.pem
   Your cert will expire on 2019-03-15. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
 
 
これで、
https:// mossymob.tk
https://www.mossymob.tk
ともに、証明書の注意画面がでなくて
表示できるようになりました。
 
 
 
自動更新を設定します。
 
certbotと一緒に、証明書を更新するための設定ファイルが一緒に配布されているので、
crontabでの設定をしないで、certbotのタイマーを使用します。
 
・タイマーの設定
[root@mk1ouin8 /]# systemctl enable --now certbot-renew.timer
Created symlink from /etc/systemd/system/timers.target.wants/certbot-renew.timer to /usr/lib/systemd/system/certbot-renew.timer.
 
・タイマーの確認
[root@mk1ouin8 /]# systemctl list-timers
NEXT                         LEFT     LAST                         PASSED  UNIT
Mon 2018-12-17 00:09:02 JST  12h left Sun 2018-12-16 00:09:02 JST  11h ago syste
Mon 2018-12-17 02:48:53 JST  14h left n/a                          n/a     certb
2 timers listed.
Pass --all to see loaded but inactive timers, too.
 
Nextが表示されていればOKです。
 
 
では、今回を終わります。

0 件のコメント:

コメントを投稿