Value-domainのAPI

Categories サーバー

API漏れるとなんでもできちゃうので多分使わない。

# Value-domainでAPIキー取得してのように実行
curl \
-H 'Authorization: Bearer 取得したAPI' \
-H 'Content-Type:application/json' \
-X GET \
'https://api.value-domain.com/v1/domains?limit=10'

LightsailにLet’s Encrypt設定

Categories サーバー

前提
ドメイン、DNSがvalue-domain。
フロントがvalue-serverでvalue-dmainの無料のSSL設定済み。
node.jsサーバがLightsailのnode.jsコンテナ。static ipは取得済み。

Lightsail側node.jsサーバ

# アップデートしておく
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:certbot/certbot -y
$ sudo apt-get update -y

# 証明書を取得してくれるツール
$ sudo apt-get install certbot -y

$ sudo certbot -d 001.tokyo -d *.001.tokyo --manual --preferred-challenges dns certonly

#進めると
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.001.tokyo with the following value:

**** TXT name ****

Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.001.tokyo with the following value:

**** TXT name ****

Before continuing, verify the record is deployed.
(This must be set up in addition to the previous challenges; do not remove,
replace, or undo the previous challenge tasks yet. Note that you might be
asked to create multiple distinct TXT records with the same name. This is
permitted by DNS standards.)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue <=ここでいったん放置

ドメインレコードにtxt name入れるよう言われるので

value-domain側DNSの設定

# certbot でもらったtxt nameをvalue-domainのDNS txtに追記
txt _acme-challenge **** TXT name ****
txt _acme-challenge **** TXT name ****

txtレコードの反映確認

# 反映されていれば上記で登録したnameが出力される。
$  nslookup -q=txt _acme-challenge.001.tokyo
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
_acme-challenge.001.tokyo       text = "**** TXT name ****"
_acme-challenge.001.tokyo       text = "**** TXT name ****"

Lightsail側node.jsサーバ

# Press Enter to Continueの続き txt反映されていれば90日有効期限の証明書貰える
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/001.tokyo/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/001.tokyo/privkey.pem
   Your cert will expire on 2021-09-04. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. 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

Let’s Encrypt証明書の反映

# bitnamiの証明書インストールツール実行
$ sudo /opt/bitnami/bncert-tool

発行者が違くて焦る。ESETがSSL通信チェックして戻すかららしい。

このドメインはvalue-server側でSSL設定していないのと90日間になっているので一応反映されているハズ。

Let’s Encrypt証明書の自動更新方法

certbot-auto動かないから焦ったけど非推奨になってました。sudo certbot renewでいいかなと思ってましたがLightsailはbitnamiのbncert-toolでもできるみたい。

# certbot-auto動かないから焦ったけど非推奨になってました
# 現行インストールされているのがsnap版のcertbotのようなので30日切ったら
# sudo certbot renew で大丈夫らしい
$ sudo certbot renew --dry-run
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/001.tokyo.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not due for renewal, but simulating renewal for dry run
Could not choose appropriate plugin: The manual plugin is not working; there may be problems with your existing configuration.
The error was: PluginError('An authentication script must be provided with --manual-auth-hook when using the manual plugin non-interactively.')
Attempting to renew cert (001.tokyo) from /etc/letsencrypt/renewal/001.tokyo.conf produced an unexpected error: The manual plugin is not working;there may be problems with your existing configuration.
The error was: PluginError('An authentication script must be provided with --manual-auth-hook when using the manual plugin non-interactively.'). kipping.
All renewal attempts failed. The following certs could not be renewed:
  /etc/letsencrypt/live/001.tokyo/fullchain.pem (failure)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
** DRY RUN: simulating 'certbot renew' close to cert expiry
**          (The test certificates below have not been saved.)

All renewal attempts failed. The following certs could not be renewed:
  /etc/letsencrypt/live/001.tokyo/fullchain.pem (failure)
** DRY RUN: simulating 'certbot renew' close to cert expiry
**          (The test certificates above have not been saved.)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1 renew failure(s), 0 parse failure(s)

# エラーの原因はワイルドカードで登録したものは自動更新できない
# ワイルドカード使った場合マニュアルでDNSのTXT更新しないといけないから
# AWSのDNSにしてhookでシェル描いてtxt自動更新させるか、VALUE-DOMAIN APIを使うかDNS AWSにするか。
# 多分シェル作って↓のcronで実行してもいけそう。
sudo /opt/bitnami/letsencrypt/lego --tls --email="Eメール" --domains="証明書更新するドメイン" --path="/opt/bitnami/letsencrypt" renew --days 90

value-serverでnode.jsインストール

Categories サーバー

NVMのインストール

# https://github.com/nvm-sh/nvm で最新のものを取得
# ホームにインストール
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

# .bashrc
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

$ source .bashrc

$ nvm
Node Version Manager (v0.38.0)

node.jsのインストール

$  nvm install node
Downloading and installing node v16.3.0...
Downloading https://nodejs.org/dist/v16.3.0/node-v16.3.0-linux-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v16.3.0 (npm v)
Creating default alias: default -> node (-> v16.3.0)

# レンタルサーバーなのでライブラリが無く最新版が動かない
$ node
node: /lib64/libc.so.6: version `GLIBC_2.16' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by node)

# バージョンを下げる
# nvm ls-remote でエラーなくなるまで確認 #v10.24.1でエラーでなくなったのでいったんこれ使う
$ nvm install 10.24.1 
$ node --version
$ nvm use 10.24.1
$ nvm ls
        v6.11.4
->     v10.24.1
       v12.22.1
       v14.17.0

考えたらvalue-serverポート開放できないから使えない。

value-serverでComposer使用方法

Categories サーバー
#確認
$ which composer
/usr/bin/composer
#叩くとエラーでるので

$ cd /
#php7.4使う composer.pharができる
$ curl -sS https://getcomposer.org/installer | php74cli

#composerで実行できるようにする
$ echo "alias composer='php71cli ~/composer.phar'">>.bashrc
$ source ./.bashrc 

#確認
$ composer

   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.0.14 2021-05-21 17:03:37