Node.js v0.11.11 マニュアル & ドキュメンテーション
Table of Contents
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 サーバオブジェクトを返します。
option
は tls.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()
で扱える文字列をサポートします。hostname
はhost
を上書きします。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 のインスタンスです。