Debian上の NIS NodeにHttpsを追加

目次
イントロダクション
このチュートリアルはDebian8で作成、テストされています。
他のリナックス配分はセットアップに類似しています。
httpノードを構築する手順を説明します。
テキストエディタ
私たちはVimをテキストエディタで使用しています。また、GNUnanoに詳しい方はGNUnanoを使用することもできます。
基礎的なVimチュートリアルは下記参照
nanoや他のどんなテキストエディタでも使用可能です。
ドメインの準備
セットアップから始める前に、ドメインを購入/作成し、ノードのIPをさすAレコードを作成します。
Aレコードは、ドメイン名をドメインをホストにしているコンピュータのIPアドレスにマッピングします。
簡単に言いますと、Aレコードを使用してインターネットに接続されているコンピュータのIPアドレスを名前から検索します。
完了したら、ノードに接続してセットアップを続けます。
FirewallとPorts
httpを有効にするためには、ポート7891(NIS)に加えて7890、ポート7779(WebSocket)に加えて7778が必要です。
7891と7779の接続の着信を許可するようにファイヤーウォール/ルーターをセットアップしてください。
インストール&letsencrypt SSL証明書
ソースに “http://ftp.debian.org/debian jessie-backports main"を追加してください。
cd /etc/apt/sources.list.d
“backports.list"ファイルを作成します。
vim backports.list
次の行をファイルに追加し、Esc+ :wqで保存します。
deb http://ftp.debian.org/debian jessie-backports main :wq
ソースが追加されたので、インストールを続けます。
apt-get update apt-get install dehydrated cd /etc/dehydrated vim domains.txt
最初のステップからドメインをtxtファイルに追加し、Esc+ :wqで保存します。
your.domain.com :wq
設定を編集し、Esc+ :wqで保存します。
cd conf.d vim config.sh
次の行をconfig.shファイルに追加してください。
(EメールはSSL証明とは違ったドメインからなる可能性もあります)
BASEDIR=/var/lib/dehydrated WELLKNOWN="${BASEDIR}/acme-challenges" DOMAINS_TXT="/etc/dehydrated/domains.txt" CONTACT_EMAIL="youremail@domain.com"
保存して終了します。
:wq
設定が終わったら、dehydratedのためのフックを作成します。
cd .. vim hook.sh
次の行をhook.shファイルに追加し、Esc+ :wqで保存します。
#!/bin/bash function deploy_challenge { local DOMAIN="${1}" TOKEN_FILENAME="${2}" TOKEN_VALUE="${3}" echo “Please add the following record to the DNS zone:" echo “_acme-challenge.$DOMAIN IN TXT \"$TOKEN_VALUE\"" echo “Press enter when installed!" read} function clean_challenge { local DOMAIN="${1}" TOKEN_FILENAME="${2}" TOKEN_VALUE="${3}“} function deploy_cert { local DOMAIN="${1}" KEYFILE="${2}" CERTFILE="${3}" CHAINFILE="${4}“} HANDLER=$1; shift; $HANDLER $@ :wq
hook.shを実行可能にします。
chmod +x hook.sh
dehydrated と一緒にSSL証明書を作成する
全ての設定が完了したら、実行している次の行によって証明書を作成します。
/usr/bin/dehydrated –cron –challenge dns-01 –domain nis.example.com –hook /etc/dehydrated/hook.sh
出力は次のようになります。
create certificate
そしてドメインに戻り、表示された文字列でDNS TXTレコードを作成します。
create dns txt record
入力が完了したらenterボタンを押し、全てが機能していれば出力は次のようになります(エラーが出た場合、TXTレコードに問題がある可能性が高いです。)
output
SSL証明書を作成したので、stunnelの設定を続けます。
stunnelのインストール&設定
cd apt-get install stunnel4 -y
stunnel.confファイルを作成します。
vim /etc/stunnel/stunnel.conf
次の行をstunnel.confに追加し、Esc+ :wqで保存します。
[nis]accept = 7891 connect = 127.0.0.1:7890 cert = /var/lib/dehydrated/certs/your.domain.com/fullchain.pem key = /var/lib/dehydrated/certs/your.domain.com/privkey.pem [websocket]accept = 7779 connect = 127.0.0.1:7778 cert = /var/lib/dehydrated/certs/your.domain.com/fullchain.pem key = /var/lib/dehydrated/certs/your.domain.com/privkey.pem :wq
stunnel ENABLEDを“1”として設定し、Esc+ :wqで保存します。
vim /etc/default/stunnel4
stunnel
:wqreboot
全てがうまく機能するかをテストするためには、ブラウザへアクセスし、https://your.domain.com:7891/node/extended-info と https://your.domain.com:7779/.へ接続してください。
(?テストし全てがうまく機能していれば、ブラウザへアクセスし、https://your.domain.com:7891/node/extended-info と https://your.domain.com:7779/.へ接続してください。?)
自動更新
Lesencrypt証明書は3ヶ月間有効なので、自動的に更新する証明書をcronjobを設定します。
crontab -e
次の行をファイルに追加し、
0 2 * * 6 /usr/bin/dehydrated –cron 2 2 * * 6 /etc/init.d/stunnel4 reload
証明書を終了し、保存します。
参考英文出典:https://blog.nem.io/https-nis-node/
NEMが買えるのはZaif(ザイフ)だけ
NEMの技術についてもっと詳しく知りたい方はこちら
Written by Yuki Okubo
Related Articles
この記事を書いた人
