H2Oおおおおおおおおおおお
ベーシック認証!
もちろんH2Oでも可能です。まずはドキュメントから。
■Configure > Using Basic Authentication
https://h2o.examp1e.net/configure/basic_auth.html
Starting from version 1.7, H2O comes with a mruby script named htpasswd.rb that implements Basic Authentication. The script provides a Rack handler that implements Basic Authentication using password files generated by the htpasswd command.
(訳)
バージョン1.7以降、H2Oには基本認証を実装するhtpasswd.rbというmrubyスクリプトが付属しています。 このスクリプトはhtpasswdコマンドで生成されたパスワードファイルを使用して基本認証を実装するhandlerを提供します。
とりあえずmrubyを駆使しないといけないので、
以下のような構成がベスト。
■構成
1 2 3 4 5 6 7 |
# > tree . ├── conf.d │ ├── test.jp.conf ├── h2o.conf └── mruby └── htpasswd.rb |
・h2o.conf
1 2 3 4 5 6 7 |
user: www-data pid-file: /var/run/h2o/h2o.pid hosts: <<: !file /etc/h2o/conf.d/test.jp.conf error-log: /var/log/h2o/all-virtual.error.log |
・htpasswd.rb
https://github.com/h2o/h2o/blob/master/share/h2o/mruby/htpasswd.rb
/etc/h2o/sites-enables/mrubyにぶち込みます。
・test.jp.conf
1 2 3 4 5 6 7 8 9 10 |
"test.jp:80" listen: port: 80 paths: "/": mruby.handler: | require "htpasswd.rb" Htpasswd.new("/var/www/html/.htpasswd", "realm-name") file.dir: /var/www/html access-log: /var/log/h2o/test.jp.access.log |
今回は/var/www/htmlに.htpasswdを作成します。
・空の.htpasswd作成しhtpasswdコマンドで作成する
1 2 3 |
# htpasswd -nbm user pass user:$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ↑これを.htpasswdにぶち込む |
ちなみに以下のようにエラー出る人はPLAIN TEXTを使ってる人!(MD5でセキュアに)(500 Internal Server Error)
failed to validate password using file:/var/www/html/.htpasswd:crypt-style password hash is not supported
参考
https://httpd.apache.org/docs/2.4/misc/password_encryptions.html
■まとめ
あとは再起動すればOK。
apacheとかnginx使う必要なくなってきたな…..
.htpasswdはちゃんとコマンドでやらないとアカン。
H2O楽しい!
0件のコメント