自己証明書でvue-cliのhttps環境でpwdやる!

pwdの開発ではhttps環境が必要になります。

本来ならvue.config.jsで

devServer: {
 https: true
},

としたら https://localhost:8080 でいけるんでしょうけど、ちょっとこれがだめで。。。

というのも、今回開発環境をvagrant+parallelsで作成して、Mac上のブラウザで表示させてたんで、IPアドレス指定で表示させる必要があったんです。

目次

まずは、ホスト名でアクセスできるように

IPアドレスでなく、ホスト名でアクセスできるようにするためにはhostsに設定を記述する必要があります。

Macなんで、 /private/etc/hosts に追記しました。

オレオレ証明書を作成しましょう!

今回これでハマりました。。。

作成したのに、どうしても https で証明書がエラーになる。。

調べてみたら、common nameでなくて、SubjectAlternateName(SAN)ってので複数のホストに対応させる必要があるようなんです。

ということでやってみました。

1)秘密鍵の作成
openssl genrsa -aes256 -out kumaexp1.com.key 2048
pass:abcdefg

2)パスワード削除
openssl rsa -in kumaexp1.com.key -out kumaexp1.com.key

3)CSRを作成
openssl req -new -key kumaexp1.com.key -out kumaexp1.com.csr
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Osaka
Locality Name (eg, city) [Default City]:Osaka
Organization Name (eg, company) [Default Company Ltd]:Kumakake
Organizational Unit Name (eg, section) []:devel
Common Name (eg, your name or your server’s hostname) []:kumaexp1.com
Email Address []:

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

4)SAN(SubjectAlternateName)リストを作成
echo “subjectAltName = DNS:kumaexp1.com, DNS:*.kumaexp1.com” > san.txt

5)証明書(CRT)作成
openssl x509 -req -days 3650 -in kumaexp1.com.csr -signkey kumaexp1.com.key -out kumaexp1.com.crt -extfile san.txt
Signature ok
subject=/C=JP/ST=Osaka/L=Osaka/O=Kumakake/OU=devel/CN=kumaexp1.com
Getting Private key

これで、

kumaexp1.com.crt / kumaexp1.com.csr / kumaexp1.com.key

が出来上がります。

出来上がったファイルを/etc/httpd/conf.d/ssl.confに設定して、apacheを再起動します。

Macはkeychainに登録する

これはホント一手間。。

1)crtファイルをkeychainで登録します。

2)「常に信頼する」にセットします。

vue側を設定する

これでapache経由でのhttps対応はOKなんですが、vueサーバー君の設定が必要です。

ここでは、おなじみのvue.config.jsに追記します。

const fs = require(‘fs’);
module.exports = {
 devServer: {
  disableHostCheck: true,
  https: {
   key : fs.readFileSync(‘kumaexp1.com.key’),
   cert: fs.readFileSync(‘kumaexp1.com.crt’),
  // ca : fs.readFileSync(”),
  }
 },
}

中間証明書はいらなかった模様。。

これで、 npm run serve ってやると、証明書が有効になります。

Macからアクセスしてみます。

https://kumaexp1.com:8080 でvueのデバッグができるようになりました(^^)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です