Node.js v0.11.11 マニュアル & ドキュメンテーション


HTTPS#

Stability: 3 - Stable

HTTPS は TLS/SSL 上の HTTP プロトコルです。 Node ではこれらは別のモジュールとして実装されています。

Class: https.Server#

このクラスは tls.Server のサブクラスで、http.Server と同様のイベントを生成します。 より詳しくは http.Server を参照してください。

server.setTimeout(msecs, callback)#

http.Server#setTimeout() を参照してください。

server.timeout#

新しい HTTPS Web サーバオブジェクトを返します。 optiontls.createServer() と同じです。 requestListener は関数で、 'request' イベントに自動的に追加されます。

例:

// curl -k https://localhost:8000/
var https = require('https');
var fs = require('fs');

var options = {
  key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
  cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')
};

https.createServer(options, function (req, res) {
  res.writeHead(200);
  res.end("hello world\n");
}).listen(8000);

または:

var https = require('https');
var fs = require('fs');

var options = {
  pfx: fs.readFileSync('server.pfx')
};

https.createServer(options, function (req, res) {
  res.writeHead(200);
  res.end("hello world\n");
}).listen(8000);

server.listen(port, [host], [backlog], [callback])#

server.listen(path, [callback])#

server.listen(handle, [callback])#

詳細は http.listen() を参照してください。

server.close([callback])#

See http.close() for details.

詳細は http.close() を参照してください。

https.request(options, callback)#

セキュアな Web サーバへのリクエストを作成します。

options はオブジェクトまたは文字列です。 options が文字列なら、それは自動的に url.parse() によって解析されます。

http.request() の全てと同様のオプションが指定できます。

例:

var https = require('https');

var options = {
  hostname: 'encrypted.google.com',
  port: 443,
  path: '/',
  method: 'GET'
};

var req = https.request(options, function(res) {
  console.log("statusCode: ", res.statusCode);
  console.log("headers: ", res.headers);

  res.on('data', function(d) {
    process.stdout.write(d);
  });
});
req.end();

req.on('error', function(e) {
  console.error(e);
});

options 引数は以下のオプションを持ちます。

  • host: リクエストを発行するサーバのドメイン名または IP アドレス。
  • hostname: url.parse() で扱える文字列をサポートします。 hostnamehost を上書きします。
  • port: リモートサーバのポート。デフォルトは 443 です。
  • method: HTTPS リクエストのメソッドの文字列。デフォルトは 'GET' です。
  • path: リクエストのパス。デフォルトは '/' です。 必要なら問い合わせ文字列を含めるべきです. 例 '/index.html?page=12'
  • headers: リクエストヘッダを含むオブジェクト。
  • auth: べーしく認証すなわち Authorization ヘッダのための 'user:password'
  • agent: Agent の振る舞いを制御します。 エージェントが使われる場合、Connection:keep-alive がデフォルトになります。 可能な値は:
    • undefined (デフォルト): ホストとポートで globalAgent を使用します。
    • Agent オブジェクト: 明示的に渡された Agent を使用します。
    • false: Agent によるコネクションプーリングを使用しません。 Connection:close の場合のデフォルトです。

以下の tls.connect() 由来のオプションを指定することもできますが、 グローバル globalAgent はこれらを無視します。

  • pfx: SSL で使用する証明書、秘密鍵、認証局の証明書。 デフォルトは null です。
  • key: SSL で使用する秘密鍵。デフォルトは null です。
  • passphrase: 秘密鍵または pfx のパスフレーズを表す文字列。 デフォルトは null です。
  • cert: x509公開証明書。デフォルトは null です。
  • ca: リモートホストをチェックする信頼できる認証局または認証局の配列。
  • ciphers: 使用または除外する暗号を記述した文字列。 詳細は http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT を参照してください。
  • rejectUnauthorized: true の場合、サーバ証明書は提供された認証局の リストによって検証されます。 認証されなかった場合は 'error' イベントが生成されます。 認証は HTTP リクエストが送信される にコネクションレベルで行われます。 デフォルトは true です。
  • secureProtocol: 使用する SSL メソッド、たとえば SSLv3_method は SSL version 3 の使用を強制します。可能な値は使用する OpenSSL によって 定義される SSL_METHODS 定数に依存します。

これらのオプションを指定するには、カスタムエージェントを使用します。

例:

var options = {
  hostname: 'encrypted.google.com',
  port: 443,
  path: '/',
  method: 'GET',
  key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
  cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')
};
options.agent = new https.Agent(options);

var req = https.request(options, function(res) {
  ...
}

あるいは、エージェントを使用しません。

例:

var options = {
  hostname: 'encrypted.google.com',
  port: 443,
  path: '/',
  method: 'GET',
  key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
  cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem'),
  agent: false
};

var req = https.request(options, function(res) {
  ...
}

https.get(options, callback)#

http.get() と同様ですが HTTPS です。

options はオブジェクトまたは文字列です。 options が文字列なら、それは自動的に url.parse() によって解析されます。

例:

var https = require('https');

https.get('https://encrypted.google.com/', function(res) {
  console.log("statusCode: ", res.statusCode);
  console.log("headers: ", res.headers);

  res.on('data', function(d) {
    process.stdout.write(d);
  });

}).on('error', function(e) {
  console.error(e);
});

Class: https.Agent#

HTTPS 用の Agent オブジェクトで,http.Agent と同様です。 詳細は https.request() を参照してください。

https.globalAgent#

全ての HTTPS クライアントリクエストで使用される、デフォルトの https.Agent のインスタンスです。