サイトを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年です。商用版あり

.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

流行ってるらしい Ichigojam で遊んでみた

2015-05-01 15.06.43

2015-05-01 16.14.41

2015-05-01 18.44.58

2015-05-01 18.44.23



BASICで遊べるという触れ込みで買ってきた Ichigojam 。
BASICでプログラムを書いてコンパイルして焼いて動かすという物ではなく、Ichigojam のファーム上にBASICのインタプリンタが乗ってるという物でした。
最初からマイコンにファームが書いてあって、用意してある基板にハンダ付けすれば完成です。ファームの更新にはISPで別途焼く必要あり。
プログラミング&ハンダ付け教室的な場所で活躍してる様です。

BASICで書いたプログラムを保存して実行できる機能があるので、焼く環境を用意しなくても良い所が面白いですね。
FLASHのサイズ上、0〜2の3つほどしか保存用領域を確保出来ないようですが、外付けFLASHで頑張ろうとする人も居ます(目撃)。

■公式

http://ichigojam.net/

■BASICリファレンス 0.9.7

http://ichigojam.net/IchigoJam.html

■スペック

CPU    LPC1114 Cortex-M0 48MHz
RAM    4KB
FLASH  32KB (Ichigojamファーム + BASIC保存領域)
出力   NTSCコンポジット,LED,Sound,GPIOx6
入力   PS/2キーボード,GPIOx4
電源   microUSB

■LPC1114 -秋月-

http://akizukidenshi.com/catalog/g/gI-06071/
マイコンだけ安く買って Ichigojam のファームだけ焼く手あり。

■mbed

https://developer.mbed.org/users/ytsuboi/notebook/getting-started-with-mbed-lpc1114-ja/
今の回路構成を踏襲してmbedで遊ぶ選択肢もあり。

■NTSCビデオ出力

個人的に一番気になった部分をHMで見ると
GPIOとSPIは無いとして、タイマーで制御してる予感。
ビデオ出力用モジュールが無くても映像が出せることに驚き

VIDEO1 -> CT16B0_MAT0 — Match output 0 for 16-bit timer 0.
VIDEO2 -> CT16B0_MAT1 — Match output 1 for 16-bit timer 0.

■外付けEEPROM

http://akizukidenshi.com/catalog/g/gI-03570/
http://fukuno.jig.jp/915

SAVE/LOAD/LRUNコマンドの100から226がEEPROMに対応しています。(ver 0.9.3以降 – IchigoJam-FANにて公開中)

5 ->SDA
6 ->SCK0
7 ->VDDA
8 ->VSSA
27->SCL