Content-Type と Content-type と content-type どれが正しい

色んなドキュメントを見たりしていると、タイトルのように複数の大文字小文字のパターンがありどれならいいのか混乱したので少し調べた「メモ」です。

rfc7540#section-8.1.2の辺りを見ました。

  • HTTP1.1 では大文字小文字区別しない
  • HTTP2 では大文字は駄目で、小文字である必要がある?

とのことです。

なので多分content-typeを使っていけば問題ないのかなということで、小文字を使っていこうと思いました。

オリジン間リソース共有 (CORS)

いつか書く。

Access-Control-Allow-Origin

通信許可できる参照元オリジン名。

Access-Control-Allow-Methods

この通信で許可できるメソッド GET, POST, OPTIONS, PUT, PATCH, DELETE

Access-Control-Allow-Headers

通信時にヘッダーに含めても大丈夫な項目。

Access-Control-Allow-Credentials

クッキーをやり取りするかどうか。する場合はtrueを指定します。

エラー

Access to fetch at 'APIのURL' from origin '送信元origin' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header has a value '送信元origin' that is not equal to the supplied origin. Have the server send the header with a valid value, or, if an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

OPTIONSのヘッダーのAccess-Control-Allow-Originの値と実際のメソッドのヘッダーで返しているAccess-Control-Allow-Originの値が異なる。

SSL 証明書を結合する

やった時のメモ。

必要なファイルは以下でした。

  • csr(Certificate Signing Request) コモンネームや組織名が含まれているファイル
    • -----BEGIN CERTIFICATE REQUEST-----が含まれる
    • サーバー証明書?
  • cer(crt?) デジタル証明書ファイル
    • -----BEGIN CERTIFICATE-----が含まれる
    • クロスルート証明書?
  • rsa 秘密鍵ファイル
    • -----BEGIN PRIVATE KEY-----が含まれる

ファイルの確認

手元に有るファイルが上記以外の拡張子だった場合、以下の方法で確認することができます。

// rsa か?
openssl rsa -text -noout -in <filename>

// cer(crt?) か?
openssl x509 -text -noout -in <filename>

// csr か?
openssl csr -text -noout -in <filename>

結果が長々と出てきたりecho $status0だったものが正です。

結合

以下のような形で結合します。自分のドメインファイルが先です。権限は400に設定します。

aws 1 www.example.com.cer ca.cer > result.crt
chmod 400 result.crt

あとはサーバーに上げて更新します。

参照