ラズパイやらUbuntuやらのApacheにオレオレ証明書を適用した

はじめてオレオレ証明書をやったときに少しはまったので備忘録として書きます.

まず,opensslをインストールします

sudo apt-get install openssl

その後に実行します.

sudo openssl genrsa -des3 -out server.key 1024

sudo openssl rsa -in server.key -out server.key

# この3650がsslの有効期限の日数になります(これだと10年)
sudo openssl req -new -days 3650 -key server.key -out server.csr

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

ここまでやると,カレントディレクトリにserver.keyとserver.cer,server.crtが出力されますので,それを /etc/sslに移動し,

sudo chmod 400 server.*

で権限を変更します.

次に,apachesslの設定をします.default-ssl.confを複製し,名前を変更します.

cd /etc/apache2/sites-available

cp default-ssl.conf vhost-ssl.conf

次に,vhost-ssl.confを修正します.

sudo vim vhost-ssl.conf

もとから書いてあったSSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pemとSSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.keyの行をコメントアウトし,先程作成したserver.crtとserver.keyに変更します.

# SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
# SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
SSLCertificateFile /etc/ssl/server.crt
SSLCertificateKeyFile /etc/ssl/server.key

これでファイルの設定変更は終了します.

次に,sslの通信を有効化します. sudo a2ensite vhost-ssl

最後にapacheを再起動して終了です.

sudo systemctl restart apache2

以上で,https://○○でアクセスできると思います.