【Let’sEncrypt】Certbotの使い方(CentOS7 + nginx)

■環境

CentOS 7.3
nginx 1.10.3
certbot 0.14.1


■初回SSL証明書発行

certbotをインストールする。

yum -y install yum-utils
yum install certbot

証明書を発行する

certbot certonly --webroot -w /usr/share/nginx/html -d your-domain.com

※上記コマンドは環境に合わせて読み替えてください。
/usr/share/nginx/html
 →設定するドメインのドキュメントルート
your-domain.com
 →設定するドメイン

これで証明書が以下ディレクトリに生成されます。

ll /etc/letsencrypt/live/your-domain.com/
lrwxrwxrwx 1 root root  40 Jun 12 16:41 cert.pem -> ../../archive/your-domain.com/cert1.pem
lrwxrwxrwx 1 root root  41 Jun 12 16:41 chain.pem -> ../../archive/your-domain.com/chain1.pem
lrwxrwxrwx 1 root root  45 Jun 12 16:41 fullchain.pem -> ../../archive/your-domain.com/fullchain1.pem
lrwxrwxrwx 1 root root  43 Jun 12 16:41 privkey.pem -> ../../archive/your-domain.com/privkey1.pem

証明書更新の度に上記シンボリックリンクの向き先が新証明書に切り替わるので、
nginx側の設定は1度設定すれば変える必要がなくなります。

■nginx設定

nginxの設定ファイルにて、SSL証明書と秘密鍵の設定をします。
(/etc/nginx/nginx.conf)

(省略)
server {
    listen  443 ssl http2 default_server;
    (省略)
    ssl_certificate "/etc/letsencrypt/live/your-domain.com/fullchain.pem";
    ssl_certificate_key "/etc/letsencrypt/live/your-domain.com/privkey.pem";
    (省略)
}

設定後、nginxを再起動します。

systemctl restart nginx.service

■SSL証明書の自動再発行設定

SSL証明書の期限が残り1ヶ月を切ったら、証明書更新が可能となります。
更新は以下コマンドで実施します。

certbot renew

自動で更新できるように、cronに上記コマンドを登録しておきます。
例として、毎週月曜日の早朝に更新作業を行なうようにします。
(残り期限1ヶ月以上残っている場合は空振りして終わる)

10 0 * * 1 certbot renew

これで設定は完了です。

Share

CentOS7のネットワーク周り初期設定

■環境

CentOS 7.3


bonding設定

参考URL:https://bacchi.me/linux/bonding/

現状確認しておきます。

nmcli c
ip a

bonding用インターフェースを追加します。

nmcli connection add type bond autoconnect no con-name bond0 ifname bond0 mode active-backup

物理インターフェースをbondに紐付けます

nmcli connection add type bond-slave autoconnect no ifname eno1 master bond0
nmcli connection add type bond-slave autoconnect no ifname eno2 master bond0

bondにIPを設定します。

nmcli c mod bond0 ipv4.method manual ipv4.address "192.168.999.999/32" ipv4.gateway "192.168.999.254" ipv6.method ignore
nmcli c mod bond0 ipv4.dns 192.168.999.254

物理インターフェースを無効にし、bondインターフェースを有効にします。

nmcli c m eno1 connection.autoconnect no
nmcli c m eno2 connection.autoconnect no

nmcli c m bond-slave-eno1 connection.autoconnect yes
nmcli c m bond-slave-eno2 connection.autoconnect yes
nmcli c m bond0 connection.autoconnect yes

nmcli c up bond-slave-eno1
nmcli c up bond-slave-eno2
nmcli c up bond0

ホスト名変更

hostnamectl set-hostname sample.com

SELinux無効化

SELinuxが不要な場合は無効化します。

vim /etc/sysconfig/selinux
SELINUX=enforcing
SELINUX=disabled

firewalld停止

別のファイアーウォール内のサーバである場合、
不要なのでfirewalldは停止しておきます。

systemctl stop firewalld
systemctl disable firewalld
Share

Composerのインストール方法

■環境

macOS Sierra 10.12.4
CentOS 6.8


作業用MacとCentOSサーバにComposerをインストールしたので、その際のメモです。

【Macの場合】

brewでインストールできます。

brew install homebrew/php/composer

【CentOSの場合】

CURLでインストーラを取得し、生成された実行ファイルをPATHが通っているディレクトリに移動します。

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/bin/composer

以上

Share

CentOS7にfishを入れる

最近人気らしいfishを試しに入れてみました。

■環境

CentOS 7.3
fish 2.3.1

epelリポジトリが入っていない人はインストールします。

yum -y install epel-release

fishをyumでインストールします。

yum -y install fish

今だけfishを使う場合は、コマンドでそのままfishと打ちます。

fish

恒久的にfishを使いたい場合はchshしておきます。

chsh -s /usr/bin/fish {ユーザ名}

 

これでfishが使えるようになりました。


〜参考〜

CentOS6.X系の場合は以下でfishのインストールできるようです。

wget -P /etc/yum.repos.d/ http://download.opensuse.org/repositories/shells:fish:release:2/CentOS_6/shells:fish:release:2.repo
yum -y install fish

【oh-my-fishインストール】

ついでにoh-my-fishもインストールします。
CentOS7でyumインストールできるgitのバージョンは1.8系(2017年4月現在)なのですが、
oh-my-fishのインストールにはgit 1.9.5以上が必要なので
ソースからコンパイルします。

ソースからコンパイルする際に必要なものをインストールします。
私の環境では以下でしたが、ここは各環境に合わせてインストールしてください。
ソースからコンパイルする方法を調べれば出てくると思います。

yum install curl-devel expat-devel gettext-devel  openssl-devel zlib-devel perl-ExtUtils-MakeMaker autoconf gettext gcc

ソースコードをダウンロードしてきます

cd /tmp/
wget https://www.kernel.org/pub/software/scm/git/git-2.9.3.tar.gz
tar xzf git-2.9.3.tar.gz

※最新のソースは以下で確認
https://www.kernel.org/pub/software/scm/git/

gitをインストールします。
configureのオプション「–with-curl」を付けないと、oh-my-fishインストール時にコケます。

cd git-2.9.3
make configure
./configure --with-curl
make
make install

『/usr/local/bin』配下にgit系コマンドが配置されるので、
もしPATHを通していない場合は追加する。

set -U fish_user_paths $fish_user_paths /usr/local/bin
git --version
git version 2.9.3

最後にoh-my-fishをインストールして完了です。

curl -L https://get.oh-my.fish | fish

oh-my-fishのインストール詳細についてはこちらを参照してください。
https://github.com/oh-my-fish/oh-my-fish

【pecoインストール】

ついでにpecoもインストールしておきます。

peco本体はgithubからダウンロードし、利用可能な状態にしておきます。

cd /tmp/
wget https://github.com/peco/peco/releases/download/v0.5.1/peco_linux_amd64.tar.gz
tar xzf peco_linux_amd64.tar.gz
mv peco_linux_amd64/peco /usr/local/bin/.

oh-my-fishでpecoをfishに取り込みます。

omf install peco

最後にfishのコンフィグファイルを修正します。

vim ~/.config/fish/config.fish
# 記載する内容
function fish_user_key_bindings
    bind \cr peco_select_history
end

以上で設定は完了です。

Share

CentOS 7.3にzabbix 3.2をインストール

■環境

CentOS 7.3
zabbix 3.2
PHP 7.1
MySQL 14.14
Apache 2.4


①zabbixをyumでインストールするためのリポジトリをインストール

# yum install http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

②zabbixの本体をインストール

# yum install \
zabbix-server-mysql \
zabbix-web-mysql \
zabbix-web \
zabbix-agent \
zabbix-get \
zabbix-sender \
zabbix-web-japanese

※MySQLではなくPostgreSQLを使う場合は、上記の『mysql』を『pgsql』にするだけです。

③MySQLの設定

# mysql
mysql> CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'zabbixpassword';
mysql> CREATE DATABASE zabbix CHARACTER SET utf8;
mysql> GRANT ALL ON zabbix.* to 'zabbix'@'localhost';
mysql> quit
# zcat /usr/share/doc/zabbix-server-mysql-3.2.1/create.sql.gz | mysql -uroot zabbix

パスワードは任意のものを入れてください。
DB名とユーザ名も変えたければ変えても構いません。

④Zabbixの設定

# vim /etc/zabbix/zabbix_server.conf
以下項目を設定
LogFileSize=10
DBPassword=zabbixpassword

もし手順③にてDB名とユーザ名も変更していた場合は、ここで該当箇所も修正してください。

⑤起動

# systemctl start zabbix-server
# systemctl start zabbix-agent
# systemctl restart httpd

これでインストールは完了です。
https://ホスト名/zabbixにアクセスするとzabbixが開き、初期設定が始まります。
初期ログインのID/PASSは『Admin/zabbix』です。

ログイン後、右上の人形アイコンで言語やパスワードを変更できます。

私が実施した時はダッシュボードにて以下のPHPの警告が表示されました。
『A non well formed numeric value encountered』
解決策はコチラに記載しています。


その他

MacサーバへのZabbixエージェントインストールが難しかったので、別途記事にしました。
MacにZabbixエージェントを入れる

Share