[apache] '/etc/ssl/certs/ssl-cert-snakeoil.pem' does not exist or is empty
問題 SSLを有効化したいのですが、エラーになり、起動できません。 SSLCertificateFile: file '/etc/ssl/certs/ssl-cert-snakeoil.pem' does not exist or is empty 自己証明でよいのでいったん有効化したいのですが。 答え ファイルがないと言っている。 以下コマンドで作成する。 openssl req -x509...
View Article[apache] IP制限またはベーシック認証をする
問題 こんな設定がしたい。 特定のIPはベーシック認証なしで通す。 その他のIPはベーシック認証を必要とする 答え 以下を .htaccess もしくは http.conf に設定する。 Apache 2.4 <RequireAny> Require ip xxx.xxx.xxx.xxx Require ip xxx.xxx.xxx.xxx Require ip...
View ArticleLet's encrypt の暗号化方式がECDSAになっていた
問題 Let's encrypt で証明書を取得したら、秘密鍵が見慣れない形式になっていました。 従来と比較して文字数が少なく、RSA方式ではなさそうです。古い環境で使えない。 これはなんでしょう? 答え Let's encrypt の暗号化方式のデフォルトがECDSAになっている。 RSA方式が必要な場合は、オプションで指定する。 --key-type rsa...
View ArticleApacheで複数バージョンのphp-fpmをホスト名で切り替える
問題 php-fpmを5系、7系、8系と実行していて、 Apacheからはホスト名を変えると使うphpのバージョンが切り換えれるようにしたいです。 例) php5.example.com → php5.6php7.example.com → php7.4php8.example.com → php8.2 答え debian、ubuntu ではapacheの設定を a2enconf,...
View ArticleCentOS9のapacheで Let's Encrypt 使いたい
問題 CentOS 9 Stream で Let's Encrypt 使おうとしたら certbotコマンドでエラーになりました。 # certbot certonly --apache Saving debug log to /var/log/letsencrypt/letsencrypt.log Error in checking parameter list: The apache...
View Article【Apache】Rewriteのクエリ文字列のエンコード、デコード
問題 Rewriteでパラメータをつけると、%エンコードされていたものがデコードされたりする? 答え エンコードさせたり、させなかったりできる。 .htaccess で以下のようになっているとき RewriteEngine On RewriteRule ^index.php\x3F(.*)$ ./?$1 [L] 以下のようなURLにアクセスすると、...
View Article【Apache】.git へのアクセスを拒否する
問題 DocumentRoot以下に git clone したら、.git が見えてしまうようですね。 .gitへのアクセスを拒否するにはどうするとよいですか。 答え 以下のような設定をするとよい。 Apache 2.4 で DirectoryMatch 方式 <DirectoryMatch "/\.git"> Require all denied...
View Article【Apache】プロキシで特定のパスだけ除外
問題 全体的に / をプロキシしていいのですが、特定のパスだけしないでほしいです。 例) /.well-known/ だけ除外 - 答え よくあるプロキシ設定 <VirtualHost *:443> # 略 ProxyPass / http://192.0.2.123/ ProxyPassReverse / http://192.0.2.123/ # 略...
View ArticleApache2.4のアクセス制御はRequireに統一するといい
問題 Apache2.2から2.4への移転で、元の .htaccess のIP制限やベーシック認証を持ってきたのですが、なんだか思ったように設定しづらいです。 答え 古い .htaccess だと、Order、Allow、Deny、Satisfy などを使って書かれていると思う。 Order Deny,Allow Deny from all Allow from xxx.xxx.xxx...
View Article【apache】Ifディレクティブで適用順序が変わる?
問題 通常は拡張子phpをphp7.4で処理するが、特定の条件の時だけ除外したくて、 サーバー設定ファイル(httpd.conf)で以下のようにして、 <FilesMatch \.php$> <If "条件"> SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost" </If>...
View Article【Let's Encrypt】BASIC認証ありで証明書の更新
問題 ベーシック認証していると Let's Encrypt のサーバー証明書の更新ができないですよね? 答え 通常の所定のURLでファイル認証するパターンであれば、そこだけベーシック認証を解除す売ればよい。 例) SetEnvIf Request_URI "/.well-known/acme-challenge" acme-challenge Order Deny,Allow Deny from...
View Article【Apache2.2】起動時にapr_sockaddr_info_get() failed が発生する
問題 apache をrestart したり configtest したりすると、以下のエラーが発生します。 $ apachectl -t httpd: apr_sockaddr_info_get() failed for xxxxxxxx httpd: Could not reliably determine the server's fully qualified domain name,...
View ArticleApacheで複数バージョンのphp-fpmをホスト名で切り替える
問題 php-fpmを5系、7系、8系と実行していて、 Apacheからはホスト名を変えると使うphpのバージョンが切り換えれるようにしたいです。 例) php5.example.com → php5.6php7.example.com → php7.4php8.example.com → php8.2 答え debian、ubuntu ではapacheの設定を a2enconf,...
View Article【Apache】Rewriteのクエリ文字列のエンコード、デコード
問題 Rewriteでパラメータをつけると、%エンコードされていたものがデコードされたりする? 答え エンコードさせたり、させなかったりできる。 .htaccess で以下のようになっているとき RewriteEngine On RewriteRule ^index.php\x3F(.*)$ ./?$1 [L] 以下のようなURLにアクセスすると、...
View Article【Apache】.git へのアクセスを拒否する
問題 DocumentRoot以下に git clone したら、.git が見えてしまうようですね。 .gitへのアクセスを拒否するにはどうするとよいですか。 答え 以下のような設定をするとよい。 Apache 2.4 で DirectoryMatch 方式 <DirectoryMatch "/\.git"> Require all denied...
View ArticleLet’s encrypt の暗号化方式がECDSAになっていた
問題 Let’s encrypt で証明書を取得したら、秘密鍵が見慣れない形式になっていました。 妙に短いです。 RSA方式ではなさそうです。古い環境で使えない。 なんでしょう? 答え Let’s encrypt の暗号化方式のデフォルトがECDSAになっている。 RSA方式が必要な場合は、オプションで指定する。 --key-type rsa 例)DNS認証で証明書を取得するとき certbot...
View Article【apache】Ifディレクティブで適用順序が変わる?
問題 通常は拡張子phpをphp7.4で処理するが、特定の条件の時だけ除外したくて、 サーバー設定ファイル(httpd.conf)で以下のようにして、 <FilesMatch \.php$> <If "条件"> SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost" </If>...
View Articleさくらのレンタルサーバーで初期ドメインでのアクセスを拒否する
問題 さくらのレンタルサーバーは「********.sakura.ne.jp」形式の初期ドメインが割り当てられていて、以下のようなURLでマルチドメイン用に置いたものなどが表示されてしまうのですが、簡単に表示されないようにできませんか? http://********.sakura.ne.jp/example.com/~~ 答え...
View Article【Apache】CookieにHttpOnly属性とSecure属性を付与する
問題 古いWebシステムでセッションCookieにHttpOnly属性とSecure属性がついていません! あまりよろしくない状態ですが、プログラムで対応する以外の方法はないですか? 答え Apacheにヘッダをいじってもらう場合、 httpd.conf か .htaccess に、以下を追記する。 Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure...
View Article【Let’s Encrypt】BASIC認証ありで証明書の更新
問題 ベーシック認証していると Let’s Encrypt のサーバー証明書の更新ができないですよね? 答え 通常の所定のURLでファイル認証するパターンであれば、そこだけベーシック認証を解除す売ればよい。 例) SetEnvIf Request_URI "/.well-known/acme-challenge" acme-challenge Order Deny,Allow Deny from...
View Article