0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

100年有効な自己署名https鍵をOpenSSLコマンドで作る (新Edge, Chrome対応, subjectAltName)

Last updated at Posted at 2021-02-06

OpenSSLで100年有効な鍵を作る

#!/bin/sh
set -eux


SUBJECT="/C=JP/OU=my-localhost"

# server.key
openssl genrsa -out server.key 3072

# server.csr
openssl req -new -key server.key -subj "${SUBJECT}" > server.csr

# server.crt
echo "subjectAltName = DNS:localhost, IP:127.0.0.1" > SAN.txt
openssl x509 -in server.csr -days 36500 -req -extfile SAN.txt -signkey server.key > server.crt

# server.der : 信頼されたルート証明機関用。ブラウザエラー回避に必要。
openssl x509 -inform PEM -outform DER -in server.crt -out server.der

# CSRは不要なため削除
rm -f server.csr

以下のように保存。(nginxのダウンロードは後述)

無題.png

信頼されたルート証明機関 にインポート

  • server.derをダブルクリックしインポート

キャプチャ.PNG

  • 信頼されたルート証明機関での表示名を変更したい場合は、my-localhostの箇所を変更のこと。

無題.png


stone.exe

https://localhost にアクセスすると http://localhost のページが表示される例

公式HPの配布分だとTLS1.0までしか対応していない。
TLS1.2で動作するにはtakuya-o/stoneさんのstone24LB.zipを使わせていただきました。おのたく日記(2017-08-24) その他ログ
また、動作にはVisual Studio 2015 の Visual C++ 再頒布可能パッケージ
の x86版のインストールが必要。(Windowsが64bit版でも。)

stone.exe -z key=server.key -z cert=server.crt localhost:80 443/ssl

出力を抑止したい場合は > nul をつけるとよい。

nginx

ダウンロード、解凍

1.png

conf/nginx.conf

conf/nginx.conf
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    # HTTPS server
    server {
        listen       443 ssl;
        server_name  localhost;

        ssl_certificate      ../_cert/server.crt;
        ssl_certificate_key  ../_cert/server.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
            index  index.html index.htm;
        }
    }


}

接続確認

nginx.exe を終了させるのに便利なコマンド

taskkill /im nginx.exe /f

mkcertの例 (こちらは有効期限2年ちょい)

apt install -y libnss3-tools
wget "https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64" \
 -O mkcert

chmod +x mkcert
./mkcert -install
cp  ~/.local/share/mkcert/rootCA.pem rootCA.crt

./mkcert localhost
mv localhost-key.pem server.key
mv localhost.pem server.crt
  • rootCA.crtをブラウザの信頼されたルート証明機関に入れる。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?