OpenSSL での証明書発行手順メモ

オレオレにしろちゃんとしたものにしろ、証明書の作成は毎回ググるし、その割には必要なコマンド群にありつけるまでに微妙に目的と違うことを書いているサイトをめぐるのに時間がかかるので、最低限のコマンドだけメモ。気が向いたら更新予定。だいたい何をしているかはわかっているけどコマンドオプションなどは覚えていられないから手っ取り早くコピペしたい人/時向け。

拡張子は、形式を尊重して key, crt の代わりに両方 pem にすることも。

秘密鍵作成

openssl genrsa -out hoge.key 4096

秘密鍵を暗号化保存したい場合は -des や -aes などのオプションを付与し、パスフレーズを入力する。

CSR 作成

openssl req -new -key hoge.key -out hoge.csr

外部の CA に署名してもらう場合(例えばブラウザでそのまま使えるちゃんとした証明書が必要な場合)はこの CSR を渡して証明書を受け取る。
このファイルは署名を受けとることができたらあとは削除して問題ない。

自己署名

openssl x509 -in hoge.csr -days 3650 -req -signkey hoge.key -out hoge.crt

自己署名でない場合、 -signkey ではなく -CA オプションを使用する。

Collabora Online の Ubuntu ネイティブパッケージのインストールのメモ

Collabora Online は、すぐ使えるものとしては以前 Docker イメージとして提供されていたが、最近になっていくつかの Linux ディストリビューション向けにパッケージが提供されるようになり、 Ubuntu 16.04 用の apt ソースの URL も提供されたので、それに従ってインストールした。その際、微妙に SSL だけ設定する必要があったのでメモ。これを機に別のページに、普通にオレオレ証明書のメモをいつでも見ることができるところに書こうと思った(追記:すぐ追加した:OpenSSL での証明書発行手順メモ | にろきのメモ帳)。現時点で必要というだけなので、将来的には自動実行されるようになるかもしれない。

NextCloud + Collabora | にろきのメモ帳 に従来構成でも必要だった手順を書いてある。

基本的には Collabora Online Development Edition (CODE) – Collabora Productivity にある通り、

# import the signing key
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0C54D189F4BA284D
# add the repository URL to /etc/apt/sources.list
echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE ./' >> /etc/apt/sources.list
# perform the installation
apt-get update && apt-get install loolwsd code-brand

で入って 9980/tcp で HTTPS で LISTEN しはじめる(あとはリバースプロキシを構成すれば使える)はずだったが、これだと loolwsd が起動に失敗した。journalctl -u loolwsd で見てみたところ、証明書があるべき場所にないようだ。あと、そもそも、原因の切り分けはしていないが数十 kB/s 程度しか出ず、大容量のパッケージをダウンロードする必要があったため数時間かかった(追記:数日後別の場所から実施したときは、警戒して最初から screen で実施したにも関わらず数分で終わった)。

/etc/loolwsd/loolwsd.xml を見ると鍵や証明書がおかれるべき場所がわかったので、以下のように実行したら動いた。

$ cd /etc/loolwsd/
$ sudo openssl genrsa -out key.pem 4096
$ sudo openssl req -new -key key.pem -out tmp.csr
$ sudo openssl x509 -in tmp.csr -days 3650 -req -signkey key.pem -out cert.pem
$ sudo cp cert.pem ca-chain.cert.pem
$ sudo rm tmp.csr
$ sudo service loolwsd start

(2018/12/26 追記)Setting up Nginx reverse proxy – Collabora Productivity を見るとそもそも loolwds 自体は TLS を使わず、 nginx のリバースプロキシ以降は平文通信する設定方法が書かれていたので、一台のマシンで nginx と loolwds が共存する場合はそちらの方がよさそう。/etc/loolwsd/loolwsd.xml を修正し、このページに書いてある通り ssl.enable を false に、ssl.terminate を true にする。