2016年12月20日火曜日

Itamaeでのファイル作成時の SELinuxによる 403エラーを回避

SELinuxが有効な環境でitamaeのfile resourceでファイルを生成すると、「user_tmp_t」というラベルが付与されてしまい、NginX等のWebサーバ経由でファイルにアクセスできない。
(ファイル生成時にいったん/tmpディレクトリを経由するためと思われる。)
パーミッションや所有者は問題ないのに403 Forbiddenになるので原因が分かりづらい。

(参考)ラベルは下記のようなコマンドで確認できる。
ls -Z パス
対策1. restoreconでラベルをリセットする 参考 ApacheでSELinuxが原因で403 Forbiddenエラー - カタカタブログ 対策2. file resoureceを使わない 内容が短ければechoでなんとかする。 例 execute "echo 'ファイルに書きたい内容' > /path/to/file.txt"

自己証明書をコマンド2発で作る方法


自己署名のサーバ証明書、いわゆるオレオレ証明書をコマンド2つ(ただし長い)で作る方法。
itamaeやchefやansibleなんかに仕込みたい場合に、対話式じゃないほうが楽なのでメモ。

openssl req -nodes -new -newkey rsa:2048 -keyout server.key -out server.csr -subj "/C=JP/ST=State/L=Location/O=Organization/OU=OrganizationUnit/CN=ここにドメインを入れる"
openssl x509 -req -sha256 -days 3650 -signkey server.key -in server.csr -out server.crt
参考 MySQLでSSLクライアント証明書を使う - Qiita floatingdays: 自己証明書の作り方 2015年版

Redhat, CentOS 7のサービス(デーモン)のコマンド

chkconfig → systemctl
CentOS 7 サービス自動起動設定 | server-memo.net
"chkconfig --list"が"systemctl list-unit-files -t service"に長くなって覚えられない...

service → systemctl
chkconfigと統合されたのは分かりやすい

2016年11月19日土曜日

Amazon API Gatewayでアクセス制限をかける方法

Amazon CloudFrontでAPI Gatewayの痒いところに手を届ける | Developers.IO

手前にCloudFront + AWS WAFを置くことにより接続元IPアドレス等でのアクセス制限ができる。

Let's Encrypt on Apache on Windows

Let's Encrypt を Windows Apacheで使ってみる。 - なんかてきとうに
自動更新用タスクも登録してくれるみたい
 Home · Lone-Coder/letsencrypt-win-simple Wiki · GitHub

最新(v1.9.1)の実行ファイルはTLS1.0非対応(#219)
 Releases · Lone-Coder/letsencrypt-win-simple · GitHub
↓
TLS1.0が必要な場合、TLS1.0の再対応(#267)を取り込んだバージョンを待つか、自分でビルドするか。

使われていないindexを見つける SQL

メモ。

■ MySQLの場合
MySQLインデックスのお手入れの基本 | Yakst

GithubにあるCreate ViewのSQLでVIEWを作って見るみたい。

MySQL5.6以降でないと動かないようだ。(参考 MySQLで使ってないインデックスを調べる方法 – sawara.me )


■ PostgreSQLの場合
postgresqlならselect * from pg_stat_user_indexes where idx_scan=0;とかですねー - terazzo のコメント / はてなブックマーク
試したら、開発環境では使われていないのがたくさんあったけど、本番環境ではみんなきれいに使われてた!

2016年9月11日日曜日

PHPから MySQLへの接続を暗号化する方法

PDO_MySQLでSSLクライアント証明書を使う - Qiita

PHP5.3.7以降。


PHPからRDSのMySQLに対してSSL接続する | Developers.IO

Amazon RDSの場合。こちらだと「PDO::MYSQL_ATTR_SSL_CA」だけになっている(?)


ところで、PostgreSQLの場合はどうやるんだろう?
↓
[SOLVED] Getting SSL working in PHP - CentOS

DSNのパラメータ指定するだけ?
31.1. データベース接続制御関数
Postgresの場合、デフォルトでまず暗号化通信を試みるようだ。
クライアント証明書を使うならもうちょっとパラメータ追加が必要になる。

Apacheで mod_watchdog is required エラー

[proxy_hcheck:crit] [pid 19249] AH03262: mod_watchdog is required

/etc/httpd/conf.modules.d/00-base.conf に
LoadModule watchdog_module modules/mod_watchdog.so
を追加すればOK。
(00-base.conf.rpmnewと比較すれば分かりやすい。)

参考 [SOLVED] apache mod_watchdog - FedoraForum.org

2016年7月16日土曜日

AWSでクロスリージョンフェイルオーバー

AWSでリージョン間の自動DR構成を構築してみた #vgadvent2013 - s_tajima:TechBlog

RDSはクロスリージョンなリードレプリカ(RDBMSによっては非対応)。
それ以外はホット(or コールド)スタンバイ。

2016年6月25日土曜日

2016年6月5日日曜日

Rubyで TLS1.2に接続できるか確認する方法

paypal/TLS-update: Documentation & tools for the upcoming TLSv1.2 required update

"net/http"は小文字でないとエラーになるので注意。

ruby -r'net/http' -e 'uri = URI("https://tlstest.paypal.com/"); puts Net::HTTP.get(uri)'
結果が、
PayPal_Connection_OK will be printed.
なら接続OK。
OpenSSL::SSL::SSLError or EOFError will be thrown.
とか何らかのエラーならNG。

Excelの新規用テンプレートが開かなくなった

MS Office 2013のExcelで、新規Excelファイルを開いた時や新規シートを追加した時に自分が使いやすい形にしたテンプレートを開くように、下記フォルダにテンプレートファイルを入れて使っていた。

C:\Program Files (x86)\Microsoft Office\Office15\XLSTART

(ファイル名は Book.xltx と Sheet.xltx)


しかし、突然テンプレートが使われなくなってしまった。
試行錯誤したあげく、下記フォルダにテンプレートファイルをコピーしたらテンプレートが適用されるようになった。

C:\Users\ユーザー名\AppData\Roaming\Microsoft\Excel\XLSTART


このフォルダは古いExcelのテンプレート置き場だったようだが、なんで先祖返りしてしまったんだろう?

2016年5月21日土曜日

clamdのエラー

clamdscanでこんなエラーが発生したり、
ERROR: Could not lookup 127.0.0.1: Servname not supported for ai_socktype
freshclam-sleepでこんなエラーが出たら、
clamd server '/var/run/clamd.scan/clamd.sock' gave '' response
clamd.scanのデーモンが停止したり、ハングしたりしてるかもしれない。 clamd.scanを(再)起動したら直った。

Windows10へのアップグレードサポートプログラムをブロックする方法

1.
Cドライブ直下に下記隠しフォルダがあれば削除
 $WINDOWS.~BT
 $Windows.~WS

2.
下記の更新プログラムをアンインストール
 KB2952664
 KB3021917
 KB3035583
 KB3112343

3.
再起動

4.
Windows Updateに再表示される2の更新プログラムを非表示にする


参考
「Windows 10」、予約しなくても約6GBのファイルを自動ダウンロード(回避方法あり) - ITmedia ニュース

2016年1月9日土曜日

TLS1.2でないとアクセスできないサイト

Black Knight MLS TLS 1.2 Test Page

IEで設定を変えて確認した。(ブラウザキャッシュに注意)

Apache (mod_ssl)で TLS1.2のみにする設定

Apache(mod_ssl)で、TLS1.1以下を無効にして、TLS1.2のみを有効にしたい場合の設定。
OpenSSL 1.0.1以降(SSLProtocol DirectiveでTLSv1.xが使える)の話。


SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
↑ こんなまどろっこしいことしないで、 これで良いみたい。 ↓
SSLProtocol TLSv1.2
TLS1.3が使えるようになった時に修正が必要になる(可能性が高い)けど。 参考 mod_ssl - Apache HTTP Server Version 2.4 (公式マニュアル)