3 min read

緑のhttpsちゃん

これまでownCloudを使ってサーバーを個人用ストレージとして使っていたのですが・・・
やっぱ暗号化くらいしたほうがよくね?というようなことをフォロワーに言われました

調べてみるとかなり簡単にSSLって構築できる・・・?
とか思って

a2enmod ssl
a2ensite default-ssl

やってみたら簡単にSSL構築できてしまいました

しかしやはり簡易的なものであり、後々困りました。
CAで証明されていないのでこうなっていました

not_ok_https

これを今回、自身の端末のみ(所謂オレオレ証明書)に限られますが

ok_https

https is †神†

こうすることができたのでそれのメモをしておきます

この件に関してとってもお世話になったサイト様→ここ

いろいろ見てやっと分かったことが、当たり前かもしれませんがdefaultのままじゃだめってことでした・・・。

それでは独自?に解説を・・・

opensslは導入してあるものとします。
それとnanoは神

1.opensslの設定ファイルである「openssl.cnf」を少しいじります

//backup
cp /etc/ssl/openssl.cnf /etc/ssl/openssl.cnfBAK
nano /etc/ssl/openssl.cnf
 ・
 ・
 ・
[ usr_cert ]
//コメントを外す
nsCertType = server,client
 ・
 ・
 ・
[ v3_ca ]
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer:always
basicConstraints = CA:true
//コメントを外す
nsCertType = sslCA, emailCA

2.秘密鍵の作成

cd /usr/lib/ssl/misc/
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/cakey.pem

ここでなにやらダイアログが出てきて設定しろ的なことを言われます
最初にServerNameを決めろと。

私の場合は
tao-server
ですね

次にDNSを決めろみたいなのが出てきた気がします
私は

DNS:tao-blog.planex.ddns.vc,DNS:tao-server.planex.ddns.vc

と入力しました

とにかくまあ、そんな感じで作れるはずです

3.ブラウザ用の証明書作成

openssl x509 -inform pem -in /etc/apache2/ssl/cakey.pem -outform der -out /home/hoge/ca.der

最後の/home/hoge/ca.derのhogeはご自身のユーザー名に変えてください。

このファイルをクライアント側のブラウザに「認証局証明書」としてインポートしてあげることで認可されているという風に認識させるようにします

4.Apache2のSSL設定ファイルを編集

とりあえずバックアップをしましょう

cp /etc/apache2/sites-available/default-ssl /etc/apache2/sites-available/default-sslBAK

それから編集

nano /etc/apache2/sites-available/default-ssl

SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
     ↓   ↓   ↓
SSLCertificateFile    /etc/apache2/ssl/cakey.pem
SSLCertificateKeyFile /etc/apache2/ssl/fc4d375c

最後の一行ですが、変動するというか環境によって異なるようなので注意してください。

最後にApache2を再起動させます

service apache2 restart

5.証明書のインポート

証明書をインストールすることでようやく緑のhttpsになってくれます

まず、/home/hoge/ca.derを自身の端末上にコピーしておいてください。
その時の取り扱いには十分気をつけて。。。

IEのインターネットオプションを開きます
コンテンツタブの証明書ボタンを押すとダイアログが表示されます
そのダイアログの信頼されたルート証明機関タブの左下インポートボタンを押します
次へボタンを押して次の画面へ。
参照ボタンを押して先ほどコピーしてきたca.derを選択します
その際、右下のファイルの種類選択はすべてのファイルにしてください。
次へを押してから、「証明書をすべて次のストアに配置する」を選択し、「信頼されたルート証明機関」を選んでOK。
次へ→完了。

以上。

この手順でhttpsの表示が緑になったと思います。長かった・・・・

Macでの証明書インストール方法(適当説明)

ca.derをダブルクリック→追加(ログインでもなんでもいいです)→常に信頼
右上の検索ボックスでインストールした証明書の名前を検索
先ほどインストールした証明書をダブルクリック
信頼カテゴリを開いて「常に信頼」にしておく

https_mac

こんな感じになります
あとは閉じればいいだけ。要所要所でパスワード求めてくるんだよなぁ・・・

余談

当初この記事はownCloudのWebDAVのことを書こうと思っていたのですが話がどんどんSSLのほうに逸れていくのでタイトル変えました・・・

どうもWebDAVで接続するとApache2がエラーを吐くらしく、それの原因がSSLにあったようでした
自身のサーバー名とSSLの内容が一致しないためのようです。
なので今回新たにSSLのファイルを作りなおしたということです。
自分へのメモ、覚え書きと、誰か見てくれてそれで成功してくれたら嬉しいな、などと思って書いています。