サイトをhttps化してみる

結構前からGoogleが本気でhttps化を促していて、気にはしていたものの結局放置していたのですが、気が向いたのでhttps化してみようと思います。

■環境
Apache2 – 2.4.25-3+deb9u5
DebianパッケージのApache2になります

■構築
1. Apache2のsslモジュールを有効化する

以下のコマンドを実行して、sslモジュールとsslのデフォルト設定を有効化します

# sslモジュール有効化
$ a2enmod ssl
# sslサイトデフォルト設定有効化
$ a2ensite default-ssl
# apache2再起動
$ systemctl restart apache2

コマンドを実行することによって、
mods-availableへのシンボリックリンクがmods-enabledに置かれ
sites-availableへのシンボリックリンクがsites-enabledに置かれることになります
手作業で普通にシンボリックリンクを作成しても良いと思います。
再起動も普通に /etc/init.d/apache2 restart としても良いです。

etc
+apache2
|+conf-available
|+conf-enabled
|+mods-available
||+ssl.conf
||+ssl.load
|+mods-enabled
||+ssl.conf
||+ssl.load
|+sites-available
||+000-default.conf
||\default-ssl.conf
|+sites-enabled
||+000-default.conf
||\default-ssl.conf
|+apache2.conf
|+apache2.conf.dpkg-dist
|+envvars
|+magic
|\ports.conf

これだけでApache2は443ポートで待ち受けするようになりました。

$ ss -ltn | grep 443
LISTEN     0      128         :::443                     :::*

※443ポートアクセスは80ポートとは別のVirtualHostとなるためDocumentRootの設定など揃える必要があります。

2. 証明書の設定
apache2のインストール時に最初から自己証明書が生成されており、
デフォルトのssl設定(default-ssl.conf)からも参照されているので、特に何もしなくても動きはします。
SSLCertificateFileとSSLCertificateKeyFileから参照してます

ssl用の公開鍵と秘密鍵は以下のディレクトリに既に存在しているはずです。

etc
+ssl
|+certs
||+ssl-cert-snakeoil.pem
|+private
||\ssl-cert-snakeoil.key
|\openssl.cnf

この段階ですでにhttpsアクセス出来ますが、認証されていないオレオレ証明書なので
CAサービスから認証済みの証明書を入手し、差し替える必要があります。

今回は無料のCAで有名そうな?letsencryptを使ってみます。
普通は結構高額な金額が掛かるらしいですが無料で使えるそうです。助かる。
https://letsencrypt.jp/

ユーザー登録など不要で、Certbotというソフトを入れるだけでいけます。
debianのbackportsパッケージにcertbotが入っていますので、aptからインストールします。
※backportsは標準ではsources.listに入っていないので追加が必要です。

# パッケージ管理システムからインストールします
$ sudo apt install certbot python-certbot-apache
# 証明書の入手とapacheへの適応を行います
$ certbot --apache

–apacheオプションを付けたことにより、sites-availableディレクトリに “000-default-le-ssl.conf” シンボリックファイルが自動生成されていることが分ります。
そして、”000-default-le-ssl.conf” から/etc/letsencrypt/live/helloidea.org/(略) への証明書の参照があることも分ります。
また、/etc/cron.d/certbot に1日2回の証明書更新クローンが置かれるため、証明書のメンテナンスも不要の様です。

これで、https化完了です。

Web-based SSHクライアントについて調べてみた

手元にSSHクライアントが無い状況でもブラウザさえあればSSH可能になるやつです
セキュリティが気になるのでWEBサービス系の使用は避けたいところです
商用版のあるタイプの物を自鯖に入れたほうが良さげ

shellinabox
https://code.google.com/archive/p/shellinabox/
2016年が最終リリースです。開発はほぼ終わっていてメンテナンスのみの印象です。

tools.bartlweb
https://tools.bartlweb.net/webssh/
shellinaboxを個人で運用公開してるサービスのようです

KeyBox
https://www.sshkeybox.com/
開発が活発な印象です。商用版あり

serFISH
https://www.serfish.com/console/
WEBサービス型のSSHクライアント

Anyterm
https://anyterm.org/
2005年から2017年まで開発が続けられています
13872回という桁違いの恐るべきコミット数です。しかも個人で。恐らくまた開発再開されるでしょう

Ajaxterm
https://github.com/antonylesuisse/qweb/tree/master/ajaxterm
Anytermからインスパイアされて開発
12年前から開発停止中

■ GateOne
http://liftoffsoftware.com/Products/GateOne
開発は現在止まっており、2017年までコミットはありますが、最終リリースは2012年です。商用版あり

WordPressのコメント欄からメールアドレス、ウェブサイトを消す

調べるとphpファイルを編集する方法と、cssを変更する方法が見つかりますが、
「外観 -> CSS編集」から追加CSSを使って上書きする形が良いと思います。

こんな感じに非表示になるよう上書きします。クラス名はChromeの開発コンソールから追っていくとすぐ見つかりました。

/* メールアドレスが公開されることはありません。 */
.comment-notes {display:none;}
/* コメント欄 */
/* .comment-form-comment {display:none;} */
/* 名前 */
/* .comment-form-author {display:none;} */
/* メールアドレス */
.comment-form-email {display:none;}
/* サイト */
.comment-form-url {display:none;}
/* 新しいコメントをメールで通知 */
.comment-subscription-form {display:none;}
/* 新しい投稿をメールで受け取る */
.comment-subscription-form {display:none;}

上の例で、コメント欄 と 名前 以外は非表示になります。

変更前
変更後

.gitconfigメモ

今の.gitconfig設定メモ
いろいろ試した結果コミット操作にターミナル、ビュワー&重要な操作としてSourcetreeを使用するという結論に収まっています。
ただちょっと前からSourcetreeはログインが必須となっています。

[user]
	name = XXXX
	email = XXXX@XXXX
[core]
	quotepath = false
	autoCRLF = false
	# editor = 'C:/Program Files/Microsoft VS Code Insiders/Code - Insiders.exe' --wait
	editor = code --wait
[alias]
	s = status
	d = difftool -d
	t = log --graph --all --date=format:'%Y/%m/%d %H:%M:%S' --format=\"%x09%C(cyan bold)%an%Creset%x09%C(yellow)%h%Creset %cd %C(magenta reverse)%d%Creset %s\"
	# tree = log --graph --all --format=\"%x09%C(cyan bold)%an%Creset%x09%C(yellow)%h%Creset %C(magenta reverse)%d%Creset %s%x09%ai%x09%ci\"	
	cleanup-soft = !git clean -f -d -x && git submodule foreach git clean -f -d -x
	cleanup-hard = !git reset --hard && git clean -f -d -x && git submodule foreach git reset --hard && git submodule foreach git clean -f -d -x

	tool = bc3
[difftool "bc3"]
	path = C:/Program Files/Beyond Compare 4/BComp.exe
[difftool "sourcetree"]
	cmd = 'C:/Program Files/Beyond Compare 4/BComp.exe' \"$LOCAL\" \"$REMOTE\"
[mergetool "sourcetree"]
	cmd = 'C:/Program Files/Beyond Compare 4/BComp.exe' \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"
	trustExitCode = true
[gui]
	encoding = utf-8
	fontui = -family \"Ricty Diminished\" -size 10 -weight normal -slant roman -underline 0 -overstrike 0
	fontdiff = -family \"Ricty Diminished\" -size 10 -weight normal -slant roman -underline 0 -overstrike 0

久しぶりに更新

一年ぶりのリハビリ投稿
ほぼメンテナンスフリー()状態の鯖だけども一応機能してます..

久しぶりなので溜まったアプデートと掃除を実施。
ファンレスだからホコリ溜まらないのがいいですね。

初めてディストリのアップデートをやったのでメモメモ。
公式の手順書があるので参照しながら実施します(Wheezy から jessieへのアップグレード)

第4章 Debian 7 (wheezy) からのアップグレード

スクリーンショット撮ってないのでやった手順だけ
sources.listを更新する前に今のバージョンで最新の状態にしておく必要があるようです
0. バックアップをとる
1. aptitude update と aptitude upgrade と aptitude dist-upgrade で最新の状態にする
(いままでdist-upgradeだけでディストリのアップグレードが出来ると信じてた…)
2. aptitudeのgオプションを実行して提案されたアクションを全て実行する
(4.2.1. パッケージマネージャにおいて中断しているアクションの確認)
3. dpkg -l | pager コマンドでパッケージの状態を調べて、エラー状態にあるパッケージの問題を解決する
(4.2.3. パッケージの状態をチェックする)
4. /etc/apt/sources.listを編集する

# 
#deb cdrom:[Debian GNU/Linux 7.2.0 _Wheezy_ - Official amd64 DVD Binary-1 20131012-14:05]/ wheezy contrib main
#deb cdrom:[Debian GNU/Linux 7.2.0 _Wheezy_ - Official amd64 DVD Binary-1 20131012-14:05]/ wheezy contrib main

#deb http://ftp.jp.debian.org/debian/ wheezy main
#deb-src http://ftp.jp.debian.org/debian/ wheezy main
deb http://ftp.jp.debian.org/debian/ jessie main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ jessie main contrib non-free

#deb http://security.debian.org/ wheezy/updates main contrib
#deb-src http://security.debian.org/ wheezy/updates main contrib
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free

deb http://ftp.jp.debian.org/debian jessie-backports main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ jessie-backports main contrib non-free

# wheezy-updates, previously known as 'volatile'
#deb http://ftp.jp.debian.org/debian/ wheezy-updates main contrib
#deb-src http://ftp.jp.debian.org/debian/ wheezy-updates main contrib

# jessie-updates, previously known as 'volatile'
deb http://ftp.jp.debian.org/debian/ jessie-updates main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ jessie-updates main contrib non-free

こんな感じに修正。
5. 再び aptitude updateとaptitude upgrade を実施。6時間くらいかかった印象。

今のところ特に問題なし。
あと現状のバックアップcronをメモって無かったのでメモ。
毎朝5時にDropboxへデータベースのダンプとwwwをバックアップしています。

00 05 * * * /usr/local/bin/dropbox.py start >> /var/www/dropbox_log.txt 2>&1
05 05 * * * mysqldump -u XXXX -XXXXXXXX -x -f wordpress > /var/www/wordpress.dmp
10 05 * * * rsync -arv --delete /var/www/ /root/Dropbox/Helloidea.org
30 05 * * * /usr/local/bin/dropbox.py stop  >> /var/www/dropbox_log.txt 2>&1