Gift history
Please access after login.


Wait a moment...

SymbolノードのHTTPS対応【Apache + Let's Encrypt版】

533
2
2021-04-08 20:02:53
0.00 mXYM
(0)

こんにちは。

Symbolノード(symbol.nuaka.net)管理人の ぬぁか です。

最近、HTTPS対応ノードが徐々にですが増えており、

2021/04/08の時点で、

Symbolノード約1500台の内、20%の約300台がHTTPSに対応しており、

先人たちが記事にしてくれているおかげか

日本のノードにおいては、半数以上のノードがHTTPSに対応しています。

(というかHTTPS対応ノードの大半が日本サーバー)


現在のSymbolノードのHTTPS対応の仕方は

大抵の方が「OK、Google Symbolノード HTTPS化」で

すぐに見つかるhttps-portalを使用する方法をとっていると思いますが

この記事ではあえて別の方法でHTTPS対応をする方法を説明します。

(Let’s Encryptを使ってるのは変わらないけどね...)

 

====ノードの宣伝====

現在委任ハーベスターの方を絶賛募集中ですのでまだ委任先が決まってない方は奮ってご参加ください。

■ノード情報■

【ホスト】 :symbol.nuaka.net

【ポート】http:3000 https:3001

【定員】:50名

===============

 

【作業OS】CentOS 7.x

【使用するミドルウェア】

・Apache HTTP Server

・Let’s Encrypt

 

0.必須ではないですがパッケージを更新した後に作業を開始します。

sudo yum update

 

1.epelレポジトリをインストールします。

sudo yum install -y epel-release

 

2.Apache HTTP ServerとLet'sEncrypt(Certnot)クライアントをインストールします。

sudo yum install -y httpd certbot python-certbot-apache

 

3.あると思いますが念の為ウェブディレクトリを作成します。

sudo mkdir -p /var/www/html

 

4.SSL証明書を生成します。

sudo certbot certonly --webroot -w /var/www/html -d 【ドメイン名】

 

4-1.メールアドレスを入力します。

※証明書の有効期限が近くなったら通知メールが送られてくるので使えるメールアドレスにして下さい。

Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): 【メールアドレス】

 


4-2.利用規約に同意します。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o:Y

 

4-3.電子フロンティア財団にメールアドレスを共有するか決めます。

※例ではN(o)にしてありますが任意で選択して下さい。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, 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

 

5.証明書が作成されているのを確認します。

ll /etc/letsencrypt/live/【ドメイン名】/

※llコマンドが使えない場合はls -l

 

6.Apache HTTP Serverの設定ファイルを作成します。

sudo vim /etc/httpd/conf.d/symbol.conf

※vim以外のエディタでもOK(vi,nano等)

 

設定サンプル

NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName 【ドメイン名】

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>
</VirtualHost>


NameVirtualHost *:443

<VirtualHost *:443>
DocumentRoot /var/www/html
ServerName 【ドメイン名】

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/【ドメイン名】/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/【ドメイン名】/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/【ドメイン名】/chain.pem

<Directory "/var/www/html">
AllowOverride All
</Directory>
</VirtualHost>


NameVirtualHost *:3001

<VirtualHost *:3001>
ServerName 【ドメイン名】

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/【ドメイン名】/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/【ドメイン名】/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/【ドメイン名】/chain.pem

ProxyRequests off
ProxyPass /ws ws://【ドメイン名】:3000/ws
ProxyPassReverse /ws ws://【ドメイン名】:3000/ws
ProxyPass / http://【ドメイン名】:3000/
ProxyPassReverse / http://【ドメイン名】:3000/
</VirtualHost>

 

サンプルの設定をざっくり説明

・http(Web:80)アクセス時にhttpsに転送

・https(Web:443, Symbol:3001)に生成した証明書を指定

・https(Symbol:3001)アクセス時にhttp(Symbol:3000)に転送

・wws(Symbol WebSocket:3001)アクセス時にws(Symbol WebSocket:3000)に転送

7.Apache HTTP ServerのListenポートに3001を追加
 Listen 80の下にListen 3001を追記します。

sudo vim /etc/httpd/conf/httpd.conf

8.Apache HTTP Serverを(再)起動します。

sudo systemctl restart httpd

 

9.curlコマンドやChrome等のブラウザでHTTPSが有効になっていることを確認します。

curl https://【ドメイン名】:3001/node/info

 

10.WebSocoketが有効になっていることを確認します。

websocket.org Echo Testへアクセスし、

Location: にwss://【ドメイン名】:3001/wsを入力後、

Connectボタンを押すとLog欄にCONNECTEDが出力されます。

 

11.他システムから見てHTTPSが有効になっているか確認します。

Symbol node listへアクセスし、

自分のノードのHeight欄にhttpsが表示されているか確認します。

12.証明書の自動更新設定を追加します。
sudo systemctl enable --now certbot-renew.timer
sudo systemctl list-timers

 

以上でSymbolノード(おまけでWebサーバー)のhttps対応は完了です。

お疲れさまでした(´・ω・`)

Writer
Comment
Login required to post comment
Loading...
https://symbol-sakura-16.next-web-technology.com:3001,https://symbol.harvest-monitor.com:3001,https://hideyoshi-node.net:3001,https://harvest-01.symbol.farm:3001,https://criptian-xym-node.net:3001,https://35665.xym.stir-hosyu.com:3001,https://yuna.keshet.finance:3001,https://cryptocat-xym-node.com:3001,https://misaki-xym.com:3001,https://ik1-305-12844.vs.sakura.ne.jp:3001,https://17107.xym.stir-hosyu.com:3001,https://23639.xym.stir-hosyu.com:3001,https://sym-main-01.opening-line.jp:3001,https://sym-main-02.opening-line.jp:3001,https://sym-main-03.opening-line.jp:3001,https://sym-main-04.opening-line.jp:3001,https://sym-main-05.opening-line.jp:3001,https://sym-main-06.opening-line.jp:3001,https://sym-main-07.opening-line.jp:3001,https://sym-main-08.opening-line.jp:3001,https://sym-main-09.opening-line.jp:3001,https://sym-main-10.opening-line.jp:3001,https://symbol-node-01.kokichi.tokyo:3001,https://50038.xym.stir-hosyu.com:3001,https://27423.xym.stir-hosyu.com:3001,https://angel.vistiel-arch.jp:3001,https://xym.stakeme.tokyo:3001,https://00-symbol-node.yagiyoshi.com:3001,
6BED913FA20223F8,051FAEC15105C808,73019335A785A3AE,5289A9B0DBB7EB25,6B245EAF1302E444,2C4A4893229DD0A9,63509D495CAD7B80,481D74291A71FD1F,009388A38C91A8B2,4E94920841641B77,027C6AD49DE2C9F9,