Subject: CAcert Code Development list.
List archive
- From: mapc <mapc AT cupdev.net>
- To: cacert-support AT lists.cacert.org
- Cc: ulrich AT cacert.org, cacert-devel AT lists.cacert.org
- Subject: Re: [HTTPS API] CSR format; certificate auth; also
- Date: Sat, 08 Jun 2013 10:30:42 +0100
Hi there,
On 05.06.2013 21:30, Andre Klärner wrote:
I am thinking that it should work with using"https://secure.cacert.org"
(as done with SSL logon on the site itself) instead of the usualwww.c.o.
But this is untested.
I just tried this: Turns out secure.cacert.org demands my certificates for initiation of the connection [see Att. 1] but still requires the parameters username and password for the api [see Att. 2],
although I do not have to pass --cacert client-ca.cert.
Given that info I was able to create a short coffescript (nodejs) that uses the ccsr api of cacert [see Att. 3].
Unfortunately it does not return a valid certificate and instad throws an error [see Att. 4], despite the web interface working fine.
Best regards,
mapc
----------------------- Attachement 1 ------------------------------
$ curl -v --key client.key --cacert client-ca.cert --cert client.cert https://secure.cacert.org/api/cemails.php -d username=apitest.cacert.mapc AT cupdev.net -d password=******
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* About to connect() to secure.cacert.org port 443 (#0)
* Trying 2001:7b8:3:9c::246...
* Connected to secure.cacert.org (2001:7b8:3:9c::246) port 443 (#0)
* successfully set certificate verify locations:
* CAfile: client-ca.cert
CApath: none
* SSLv3, TLS handshake, Client hello (1):
} [data not shown]
* SSLv3, TLS handshake, Server hello (2):
{ [data not shown]
* SSLv3, TLS handshake, CERT (11):
{ [data not shown]
* SSLv3, TLS handshake, Server key exchange (12):
{ [data not shown]
* SSLv3, TLS handshake, Request CERT (13):
{ [data not shown]
* SSLv3, TLS handshake, Server finished (14):
{ [data not shown]
* SSLv3, TLS handshake, CERT (11):
} [data not shown]
* SSLv3, TLS handshake, Client key exchange (16):
} [data not shown]
* SSLv3, TLS handshake, CERT verify (15):
} [data not shown]
* SSLv3, TLS change cipher, Client hello (1):
} [data not shown]
* SSLv3, TLS handshake, Finished (20):
} [data not shown]
* SSLv3, TLS change cipher, Client hello (1):
{ [data not shown]
* SSLv3, TLS handshake, Finished (20):
{ [data not shown]
* SSL connection using DHE-RSA-AES256-SHA
* Server certificate:
* subject: C=AU; ST=NSW; L=Sydney; O=CAcert Inc.; CN=www.cacert.org
* start date: 2012-05-06 18:46:41 GMT
* expire date: 2014-05-06 18:46:41 GMT
* subjectAltName: secure.cacert.org matched
* issuer: O=Root CA; OU=http://www.cacert.org; CN=CA Cert Signing Authority; emailAddress=support AT cacert.org
* SSL certificate verify ok.
POST /api/cemails.php HTTP/1.1} [data not shown]
User-Agent: curl/7.29.0
Host: secure.cacert.org
Accept: */*
Content-Length: 55
Content-Type: application/x-www-form-urlencoded
* upload completely sent off: 55 out of 55 bytes
< HTTP/1.1 200 OK
< Date: Sat, 08 Jun 2013 09:09:34 GMT
< Server: Apache/2.2.16 (Debian)
< Set-Cookie: cacert=jbfmfdih76ibegt3olfdlt0qd4; path=/; secure
< Expires: Thu, 19 Nov 1981 08:52:00 GMT
< Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< Pragma: no-cache
< Vary: Accept-Encoding
< Content-Length: 85
< Content-Type: text/html; charset=iso-8859-1
<
{ [data not shown]
100 140 100 85 100 55 469 304 --:--:-- --:--:-- --:--:-- 472
* Connection #0 to host secure.cacert.org left intact
200,Authentication Ok
CS=0
NAME=CAcert WoT User
EMAIL=apitest.cacert.mapc AT cupdev.net
--------------------------- Attachement 2 -------------------------------
$ curl -v https://secure.cacert.org/api/cemails.php -d username=apitest.cacert.mapc AT cupdev.net -d password=******
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* About to connect() to secure.cacert.org port 443 (#0)
* Trying 2001:7b8:3:9c::246...
* Connected to secure.cacert.org (2001:7b8:3:9c::246) port 443 (#0)
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: none
* SSLv3, TLS handshake, Client hello (1):
} [data not shown]
* SSLv3, TLS handshake, Server hello (2):
{ [data not shown]
* SSLv3, TLS handshake, CERT (11):
{ [data not shown]
* SSLv3, TLS handshake, Server key exchange (12):
{ [data not shown]
* SSLv3, TLS handshake, Request CERT (13):
{ [data not shown]
* SSLv3, TLS handshake, Server finished (14):
{ [data not shown]
* SSLv3, TLS handshake, CERT (11):
} [data not shown]
* SSLv3, TLS handshake, Client key exchange (16):
} [data not shown]
* SSLv3, TLS change cipher, Client hello (1):
} [data not shown]
* SSLv3, TLS handshake, Finished (20):
} [data not shown]
* SSLv3, TLS alert, Server hello (2):
{ [data not shown]
* error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
* Closing connection 0
curl: (35) error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
---------------------- Attachement 3 --------------------------
_ = require 'underscore'
fs = require 'fs'
qs = require 'querystring'
http = require 'http'
https = require 'https'
_.P = (a...) ->
console.log a...
_.last a
POST_urlencode = (data, f) ->
post = _.clone data
# Set defaults
_.defaults post,
headers: {}
encoding: 'utf8'
query: {}
secure: true
_.defaults post,
if post.secure
netapi: https
port: 443
else
netapi: http
port: 80
# Overwrite force
_.extend post,
method: 'POST'
# Compute querystring
post.s_query = qs.stringify post.query
# Define header
_.extend post.headers,
'Content-Type': 'application/x-www-form-urlencoded'
'Content-Length': post.s_query.length
req = post.netapi.request post, (res) ->
res.setEncoding post.encoding
res.data = post.s_query
f res
req.write post.s_query
req.end()
fs.readFile 'test.csr', (err, file) ->
POST_urlencode (
hostname: 'secure.cacert.org'
port: 443
path: '/api/ccsr.php'
rejectUnauthorized: false
cert: String fs.readFileSync "client.cert"
key: String fs.readFileSync "client.key"
query:
username:
"apitest.cacert.mapc AT cupdev.net"
password: '******'
'email[0]':
"apitest.cacert.mapc AT cupdev.net"
optionalCSR: String file
), (res) ->
_.P 'RES:', res
_.P 'STATUS:', res.statusCode
_.P 'HEADERS:', JSON.stringify res.headers
_.P 'DATA:', res.data
res.on 'data', _.P
---------------- Attachment 4 -----------------------------
RES: { _readableState:
{ highWaterMark: 16384,
buffer: [],
length: 0,
pipes: null,
pipesCount: 0,
flowing: false,
ended: false,
endEmitted: false,
reading: false,
calledRead: false,
sync: true,
needReadable: false,
emittedReadable: false,
readableListening: false,
objectMode: false,
ranOut: false,
awaitDrain: 0,
readingMore: false,
decoder:
{ encoding: 'utf8',
surrogateSize: 3,
charBuffer: <Buffer 00 00 00 00 00 00>,
charReceived: 0,
charLength: 0 } },
readable: true,
domain: null,
_events: { end: [Function: responseOnEnd] },
_maxListeners: 10,
socket:
{ _readableState:
{ highWaterMark: 16384,
buffer: [],
length: 0,
pipes: null,
pipesCount: 0,
flowing: false,
ended: false,
endEmitted: false,
reading: true,
calledRead: true,
sync: true,
needReadable: true,
emittedReadable: false,
readableListening: false,
objectMode: false,
ranOut: false,
awaitDrain: 0,
readingMore: false,
decoder: null },
readable: true,
domain: null,
_events:
{ end: [Object],
finish: [Object],
free: [Function],
close: [Object],
agentRemove: [Function],
drain: [Function: ondrain],
error: [Function: socketErrorListener] },
_maxListeners: 10,
_writableState:
{ highWaterMark: 16384,
objectMode: false,
needDrain: false,
ending: false,
ended: false,
finished: false,
decodeStrings: true,
length: 0,
writing: false,
sync: false,
bufferProcessing: false,
onwrite: [Function],
writecb: null,
writelen: 0,
buffer: [] },
writable: true,
allowHalfOpen: true,
pair:
{ domain: null,
_events: [Object],
_maxListeners: 10,
server: undefined,
_secureEstablished: true,
_isServer: false,
_encWriteState: true,
_clearWriteState: true,
_doneFlag: false,
_destroying: false,
credentials: [Object],
_rejectUnauthorized: false,
_requestCert: true,
ssl: {},
servername: false,
cleartext: [Circular],
encrypted: [Object],
fd: undefined,
npnProtocol: undefined },
_pending: null,
_pendingEncoding: '',
_pendingCallback: null,
_doneFlag: false,
_resumingSession: false,
_reading: true,
_destroyed: false,
_ended: false,
_finished: false,
_opposite:
{ _readableState: [Object],
readable: true,
domain: null,
_events: [Object],
_maxListeners: 10,
_writableState: [Object],
writable: true,
allowHalfOpen: true,
pair: [Object],
_pending: null,
_pendingEncoding: '',
_pendingCallback: null,
_doneFlag: false,
_resumingSession: false,
_reading: true,
_destroyed: false,
_ended: false,
_finished: false,
_opposite: [Circular],
_buffer: [Object] },
_buffer:
{ isFull: false,
pool: <Buffer 16 03 01 01 5a 01 00 01 56 03 03 51 b2 f8 cc 02 8b ed 38 ef 22 c5 7d 70 14 d9 94 72 8d ce 06 fd 67 ec d4 37 a6 cd 66 75 6d 0c 5f 00 00 a0 c0 30 c0 2c c0 ...>,
offset: 4064,
remaining: 10481696 },
_handle: { readStop: [Function], readStart: [Function] },
socket:
{ _connecting: false,
_handle: [Object],
_readableState: [Object],
readable: true,
domain: null,
_events: [Object],
_maxListeners: 10,
_writableState: [Object],
writable: true,
allowHalfOpen: false,
onend: null,
destroyed: false,
errorEmitted: false,
bytesRead: 6273,
_bytesDispatched: 3580,
_pendingData: null,
_pendingEncoding: '',
read: [Function],
_consuming: true },
encrypted:
{ _readableState: [Object],
readable: true,
domain: null,
_events: [Object],
_maxListeners: 10,
_writableState: [Object],
writable: true,
allowHalfOpen: true,
pair: [Object],
_pending: null,
_pendingEncoding: '',
_pendingCallback: null,
_doneFlag: false,
_resumingSession: false,
_reading: true,
_destroyed: false,
_ended: false,
_finished: false,
_opposite: [Circular],
_buffer: [Object] },
authorized: false,
_controlReleased: true,
parser:
{ _headers: [],
_url: '',
onHeaders: [Function: parserOnHeaders],
onHeadersComplete: [Function: parserOnHeadersComplete],
onBody: [Function: parserOnBody],
onMessageComplete: [Function: parserOnMessageComplete],
socket: [Circular],
incoming: [Circular],
maxHeaderPairs: 2000,
onIncoming: [Function: parserOnIncomingClient] },
_httpMessage:
{ domain: null,
_events: [Object],
_maxListeners: 10,
output: [],
outputEncodings: [],
writable: true,
_last: false,
chunkedEncoding: false,
shouldKeepAlive: true,
useChunkedEncodingByDefault: true,
sendDate: false,
_hasBody: true,
_trailer: '',
finished: true,
_hangupClose: false,
socket: [Circular],
connection: [Circular],
agent: [Object],
socketPath: undefined,
method: 'POST',
path: '/api/ccsr.php',
_headers: [Object],
_headerNames: [Object],
_header: 'POST /api/ccsr.php HTTP/1.1\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: 1103\r\nHost: secure.cacert.org\r\nConnection: keep-alive\r\n\r\n',
_headerSent: true,
parser: [Object],
res: [Circular] },
ondata: [Function: socketOnData],
onend: [Function: socketOnEnd],
npnProtocol: undefined,
authorizationError: 'SELF_SIGNED_CERT_IN_CHAIN' },
connection:
{ _readableState:
{ highWaterMark: 16384,
buffer: [],
length: 0,
pipes: null,
pipesCount: 0,
flowing: false,
ended: false,
endEmitted: false,
reading: true,
calledRead: true,
sync: true,
needReadable: true,
emittedReadable: false,
readableListening: false,
objectMode: false,
ranOut: false,
awaitDrain: 0,
readingMore: false,
decoder: null },
readable: true,
domain: null,
_events:
{ end: [Object],
finish: [Object],
free: [Function],
close: [Object],
agentRemove: [Function],
drain: [Function: ondrain],
error: [Function: socketErrorListener] },
_maxListeners: 10,
_writableState:
{ highWaterMark: 16384,
objectMode: false,
needDrain: false,
ending: false,
ended: false,
finished: false,
decodeStrings: true,
length: 0,
writing: false,
sync: false,
bufferProcessing: false,
onwrite: [Function],
writecb: null,
writelen: 0,
buffer: [] },
writable: true,
allowHalfOpen: true,
pair:
{ domain: null,
_events: [Object],
_maxListeners: 10,
server: undefined,
_secureEstablished: true,
_isServer: false,
_encWriteState: true,
_clearWriteState: true,
_doneFlag: false,
_destroying: false,
credentials: [Object],
_rejectUnauthorized: false,
_requestCert: true,
ssl: {},
servername: false,
cleartext: [Circular],
encrypted: [Object],
fd: undefined,
npnProtocol: undefined },
_pending: null,
_pendingEncoding: '',
_pendingCallback: null,
_doneFlag: false,
_resumingSession: false,
_reading: true,
_destroyed: false,
_ended: false,
_finished: false,
_opposite:
{ _readableState: [Object],
readable: true,
domain: null,
_events: [Object],
_maxListeners: 10,
_writableState: [Object],
writable: true,
allowHalfOpen: true,
pair: [Object],
_pending: null,
_pendingEncoding: '',
_pendingCallback: null,
_doneFlag: false,
_resumingSession: false,
_reading: true,
_destroyed: false,
_ended: false,
_finished: false,
_opposite: [Circular],
_buffer: [Object] },
_buffer:
{ isFull: false,
pool: <Buffer 16 03 01 01 5a 01 00 01 56 03 03 51 b2 f8 cc 02 8b ed 38 ef 22 c5 7d 70 14 d9 94 72 8d ce 06 fd 67 ec d4 37 a6 cd 66 75 6d 0c 5f 00 00 a0 c0 30 c0 2c c0 ...>,
offset: 4064,
remaining: 10481696 },
_handle: { readStop: [Function], readStart: [Function] },
socket:
{ _connecting: false,
_handle: [Object],
_readableState: [Object],
readable: true,
domain: null,
_events: [Object],
_maxListeners: 10,
_writableState: [Object],
writable: true,
allowHalfOpen: false,
onend: null,
destroyed: false,
errorEmitted: false,
bytesRead: 6273,
_bytesDispatched: 3580,
_pendingData: null,
_pendingEncoding: '',
read: [Function],
_consuming: true },
encrypted:
{ _readableState: [Object],
readable: true,
domain: null,
_events: [Object],
_maxListeners: 10,
_writableState: [Object],
writable: true,
allowHalfOpen: true,
pair: [Object],
_pending: null,
_pendingEncoding: '',
_pendingCallback: null,
_doneFlag: false,
_resumingSession: false,
_reading: true,
_destroyed: false,
_ended: false,
_finished: false,
_opposite: [Circular],
_buffer: [Object] },
authorized: false,
_controlReleased: true,
parser:
{ _headers: [],
_url: '',
onHeaders: [Function: parserOnHeaders],
onHeadersComplete: [Function: parserOnHeadersComplete],
onBody: [Function: parserOnBody],
onMessageComplete: [Function: parserOnMessageComplete],
socket: [Circular],
incoming: [Circular],
maxHeaderPairs: 2000,
onIncoming: [Function: parserOnIncomingClient] },
_httpMessage:
{ domain: null,
_events: [Object],
_maxListeners: 10,
output: [],
outputEncodings: [],
writable: true,
_last: false,
chunkedEncoding: false,
shouldKeepAlive: true,
useChunkedEncodingByDefault: true,
sendDate: false,
_hasBody: true,
_trailer: '',
finished: true,
_hangupClose: false,
socket: [Circular],
connection: [Circular],
agent: [Object],
socketPath: undefined,
method: 'POST',
path: '/api/ccsr.php',
_headers: [Object],
_headerNames: [Object],
_header: 'POST /api/ccsr.php HTTP/1.1\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: 1103\r\nHost: secure.cacert.org\r\nConnection: keep-alive\r\n\r\n',
_headerSent: true,
parser: [Object],
res: [Circular] },
ondata: [Function: socketOnData],
onend: [Function: socketOnEnd],
npnProtocol: undefined,
authorizationError: 'SELF_SIGNED_CERT_IN_CHAIN' },
httpVersion: '1.1',
complete: false,
headers:
{ date: 'Sat, 08 Jun 2013 09:26:36 GMT',
server: 'Apache/2.2.16 (Debian)',
'set-cookie': [ 'cacert=k9sm0jsqv6de4edagmf6b0ld16; path=/; secure' ],
expires: 'Thu, 19 Nov 1981 08:52:00 GMT',
'cache-control': 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0',
pragma: 'no-cache',
vary: 'Accept-Encoding',
'content-length': '51',
'keep-alive': 'timeout=15, max=100',
connection: 'Keep-Alive',
'content-type': 'text/html; charset=iso-8859-1' },
trailers: {},
_pendings: [],
_pendingIndex: 0,
url: '',
method: null,
statusCode: 200,
client:
{ _readableState:
{ highWaterMark: 16384,
buffer: [],
length: 0,
pipes: null,
pipesCount: 0,
flowing: false,
ended: false,
endEmitted: false,
reading: true,
calledRead: true,
sync: true,
needReadable: true,
emittedReadable: false,
readableListening: false,
objectMode: false,
ranOut: false,
awaitDrain: 0,
readingMore: false,
decoder: null },
readable: true,
domain: null,
_events:
{ end: [Object],
finish: [Object],
free: [Function],
close: [Object],
agentRemove: [Function],
drain: [Function: ondrain],
error: [Function: socketErrorListener] },
_maxListeners: 10,
_writableState:
{ highWaterMark: 16384,
objectMode: false,
needDrain: false,
ending: false,
ended: false,
finished: false,
decodeStrings: true,
length: 0,
writing: false,
sync: false,
bufferProcessing: false,
onwrite: [Function],
writecb: null,
writelen: 0,
buffer: [] },
writable: true,
allowHalfOpen: true,
pair:
{ domain: null,
_events: [Object],
_maxListeners: 10,
server: undefined,
_secureEstablished: true,
_isServer: false,
_encWriteState: true,
_clearWriteState: true,
_doneFlag: false,
_destroying: false,
credentials: [Object],
_rejectUnauthorized: false,
_requestCert: true,
ssl: {},
servername: false,
cleartext: [Circular],
encrypted: [Object],
fd: undefined,
npnProtocol: undefined },
_pending: null,
_pendingEncoding: '',
_pendingCallback: null,
_doneFlag: false,
_resumingSession: false,
_reading: true,
_destroyed: false,
_ended: false,
_finished: false,
_opposite:
{ _readableState: [Object],
readable: true,
domain: null,
_events: [Object],
_maxListeners: 10,
_writableState: [Object],
writable: true,
allowHalfOpen: true,
pair: [Object],
_pending: null,
_pendingEncoding: '',
_pendingCallback: null,
_doneFlag: false,
_resumingSession: false,
_reading: true,
_destroyed: false,
_ended: false,
_finished: false,
_opposite: [Circular],
_buffer: [Object] },
_buffer:
{ isFull: false,
pool: <Buffer 16 03 01 01 5a 01 00 01 56 03 03 51 b2 f8 cc 02 8b ed 38 ef 22 c5 7d 70 14 d9 94 72 8d ce 06 fd 67 ec d4 37 a6 cd 66 75 6d 0c 5f 00 00 a0 c0 30 c0 2c c0 ...>,
offset: 4064,
remaining: 10481696 },
_handle: { readStop: [Function], readStart: [Function] },
socket:
{ _connecting: false,
_handle: [Object],
_readableState: [Object],
readable: true,
domain: null,
_events: [Object],
_maxListeners: 10,
_writableState: [Object],
writable: true,
allowHalfOpen: false,
onend: null,
destroyed: false,
errorEmitted: false,
bytesRead: 6273,
_bytesDispatched: 3580,
_pendingData: null,
_pendingEncoding: '',
read: [Function],
_consuming: true },
encrypted:
{ _readableState: [Object],
readable: true,
domain: null,
_events: [Object],
_maxListeners: 10,
_writableState: [Object],
writable: true,
allowHalfOpen: true,
pair: [Object],
_pending: null,
_pendingEncoding: '',
_pendingCallback: null,
_doneFlag: false,
_resumingSession: false,
_reading: true,
_destroyed: false,
_ended: false,
_finished: false,
_opposite: [Circular],
_buffer: [Object] },
authorized: false,
_controlReleased: true,
parser:
{ _headers: [],
_url: '',
onHeaders: [Function: parserOnHeaders],
onHeadersComplete: [Function: parserOnHeadersComplete],
onBody: [Function: parserOnBody],
onMessageComplete: [Function: parserOnMessageComplete],
socket: [Circular],
incoming: [Circular],
maxHeaderPairs: 2000,
onIncoming: [Function: parserOnIncomingClient] },
_httpMessage:
{ domain: null,
_events: [Object],
_maxListeners: 10,
output: [],
outputEncodings: [],
writable: true,
_last: false,
chunkedEncoding: false,
shouldKeepAlive: true,
useChunkedEncodingByDefault: true,
sendDate: false,
_hasBody: true,
_trailer: '',
finished: true,
_hangupClose: false,
socket: [Circular],
connection: [Circular],
agent: [Object],
socketPath: undefined,
method: 'POST',
path: '/api/ccsr.php',
_headers: [Object],
_headerNames: [Object],
_header: 'POST /api/ccsr.php HTTP/1.1\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: 1103\r\nHost: secure.cacert.org\r\nConnection: keep-alive\r\n\r\n',
_headerSent: true,
parser: [Object],
res: [Circular] },
ondata: [Function: socketOnData],
onend: [Function: socketOnEnd],
npnProtocol: undefined,
authorizationError: 'SELF_SIGNED_CERT_IN_CHAIN' },
_consuming: false,
_dumped: false,
httpVersionMajor: 1,
httpVersionMinor: 1,
upgrade: false,
req:
{ domain: null,
_events: { response: undefined, socket: undefined },
_maxListeners: 10,
output: [],
outputEncodings: [],
writable: true,
_last: false,
chunkedEncoding: false,
shouldKeepAlive: true,
useChunkedEncodingByDefault: true,
sendDate: false,
_hasBody: true,
_trailer: '',
finished: true,
_hangupClose: false,
socket:
{ _readableState: [Object],
readable: true,
domain: null,
_events: [Object],
_maxListeners: 10,
_writableState: [Object],
writable: true,
allowHalfOpen: true,
pair: [Object],
_pending: null,
_pendingEncoding: '',
_pendingCallback: null,
_doneFlag: false,
_resumingSession: false,
_reading: true,
_destroyed: false,
_ended: false,
_finished: false,
_opposite: [Object],
_buffer: [Object],
_handle: [Object],
socket: [Object],
encrypted: [Object],
authorized: false,
_controlReleased: true,
parser: [Object],
_httpMessage: [Circular],
ondata: [Function: socketOnData],
onend: [Function: socketOnEnd],
npnProtocol: undefined,
authorizationError: 'SELF_SIGNED_CERT_IN_CHAIN' },
connection:
{ _readableState: [Object],
readable: true,
domain: null,
_events: [Object],
_maxListeners: 10,
_writableState: [Object],
writable: true,
allowHalfOpen: true,
pair: [Object],
_pending: null,
_pendingEncoding: '',
_pendingCallback: null,
_doneFlag: false,
_resumingSession: false,
_reading: true,
_destroyed: false,
_ended: false,
_finished: false,
_opposite: [Object],
_buffer: [Object],
_handle: [Object],
socket: [Object],
encrypted: [Object],
authorized: false,
_controlReleased: true,
parser: [Object],
_httpMessage: [Circular],
ondata: [Function: socketOnData],
onend: [Function: socketOnEnd],
npnProtocol: undefined,
authorizationError: 'SELF_SIGNED_CERT_IN_CHAIN' },
agent:
{ domain: null,
_events: [Object],
_maxListeners: 10,
options: [Object],
requests: {},
sockets: [Object],
maxSockets: 5,
createConnection: [Function: createConnection] },
socketPath: undefined,
method: 'POST',
path: '/api/ccsr.php',
_headers:
{ 'content-type': 'application/x-www-form-urlencoded',
'content-length': 1103,
host: 'secure.cacert.org' },
_headerNames:
{ 'content-type': 'Content-Type',
'content-length': 'Content-Length',
host: 'Host' },
_header: 'POST /api/ccsr.php HTTP/1.1\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: 1103\r\nHost: secure.cacert.org\r\nConnection: keep-alive\r\n\r\n',
_headerSent: true,
parser:
{ _headers: [],
_url: '',
onHeaders: [Function: parserOnHeaders],
onHeadersComplete: [Function: parserOnHeadersComplete],
onBody: [Function: parserOnBody],
onMessageComplete: [Function: parserOnMessageComplete],
socket: [Object],
incoming: [Circular],
maxHeaderPairs: 2000,
onIncoming: [Function: parserOnIncomingClient] },
res: [Circular] },
data: 'username=apitest.cacert.mapc%40cupdev.net&password=******&email%5B0%5D=apitest.cacert.mapc%40cupdev.net&optionalCSR=-----BEGIN%20CERTIFICATE%20REQUEST-----%0AMIICXjCCAUYCAQAwGTEXMBUGA1UEAwwOY3ViZWFsaWJyZS5vcmcwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzvfpMfrP1MOuVgNCdkJY5nLU7QlQEzN0d%0AxRWDHsJflYvsFbDDaQ41efqVrH2ODpBYc6lb6yuykywbr6Pca19h9dqmVTMgpVu3%0A6LOLQ5WhzMKnn8hXWDGz%2BPYHhdxxBa%2FwljhwLzGyagwUa5QLVLg7NmQttIz7e8kw%0AG7h%2F%2Ba1TlhW89VAkIOIXriC%2F43b6ru5zY%2Fzi9httkeIE972bQ2aSfm%2FYEY85AfoF%0AwwUi4ES1pOZxyy%2FvRg0sTICbSZZ5XyvzdupFAS8RWdZwClDhrXO1n%2F%2BTkAfYkvpA%0AzoRW9rPUZmaFtHZIgaG2rN1eWLNCTpw91LgaDbrM%2B7WdlGaUJBuzAgMBAAGgADAN%0ABgkqhkiG9w0BAQUFAAOCAQEAPXlufi4H1LM0LcIw0nx%2FMGVGBu0c5Djdn8YAyMyr%0AAGOB4X1XJiCOcOlIwcwy2TITtt70XmccA4IQk708%2F3vBqH5FyGDxdZL%2BbG0u4zPo%0AdCIHPSDv%2FkLh2M6N5krzNudSLC23f0k%2B0RdOY9w1AZM4oaJXhj4pzdokJuAhi6IN%0ATsE2dDapxngy%2FZDRBs1vYPVS9pIFNDMLatH3cW8D8DSGExBfFQFRGoYGyAfmbitW%0AoN93Jo4r%2FEQxRIyiH48wZ6uzsxEnq72COShqFcrtx%2BDLlw61SHUO58D%
2FcpVlJh
j
Q%0AQY1qKOW4Tp%2FHWoX%2BVsQcf0vU4%2Bd36qU6bXv84HBPdNeJ5A%3D%3D%0A-----END%20CERTIFICATE%20REQUEST-----%0A' }
STATUS: 200
HEADERS: {"date":"Sat, 08 Jun 2013 09:26:36 GMT","server":"Apache/2.2.16 (Debian)","set-cookie":["cacert=k9sm0jsqv6de4edagmf6b0ld16; path=/; secure"],"expires":"Thu, 19 Nov 1981 08:52:00 GMT","cache-control":"no-store, no-cache, must-revalidate, post-check=0, pre-check=0","pragma":"no-cache","vary":"Accept-Encoding","content-length":"51","keep-alive":"timeout=15, max=100","connection":"Keep-Alive","content-type":"text/html; charset=iso-8859-1"}
DATA: username=apitest.cacert.mapc%40cupdev.net&password=******&email%5B0%5D=apitest.cacert.mapc%40cupdev.net&optionalCSR=-----BEGIN%20CERTIFICATE%20REQUEST-----%0AMIICXjCCAUYCAQAwGTEXMBUGA1UEAwwOY3ViZWFsaWJyZS5vcmcwggEiMA0GCSqG%0ASIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzvfpMfrP1MOuVgNCdkJY5nLU7QlQEzN0d%0AxRWDHsJflYvsFbDDaQ41efqVrH2ODpBYc6lb6yuykywbr6Pca19h9dqmVTMgpVu3%0A6LOLQ5WhzMKnn8hXWDGz%2BPYHhdxxBa%2FwljhwLzGyagwUa5QLVLg7NmQttIz7e8kw%0AG7h%2F%2Ba1TlhW89VAkIOIXriC%2F43b6ru5zY%2Fzi9httkeIE972bQ2aSfm%2FYEY85AfoF%0AwwUi4ES1pOZxyy%2FvRg0sTICbSZZ5XyvzdupFAS8RWdZwClDhrXO1n%2F%2BTkAfYkvpA%0AzoRW9rPUZmaFtHZIgaG2rN1eWLNCTpw91LgaDbrM%2B7WdlGaUJBuzAgMBAAGgADAN%0ABgkqhkiG9w0BAQUFAAOCAQEAPXlufi4H1LM0LcIw0nx%2FMGVGBu0c5Djdn8YAyMyr%0AAGOB4X1XJiCOcOlIwcwy2TITtt70XmccA4IQk708%2F3vBqH5FyGDxdZL%2BbG0u4zPo%0AdCIHPSDv%2FkLh2M6N5krzNudSLC23f0k%2B0RdOY9w1AZM4oaJXhj4pzdokJuAhi6IN%0ATsE2dDapxngy%2FZDRBs1vYPVS9pIFNDMLatH3cW8D8DSGExBfFQFRGoYGyAfmbitW%0AoN93Jo4r%2FEQxRIyiH48wZ6uzsxEnq72COShqFcrtx%2BDLlw61SHUO58D%2
FcpVlJhj
Q
%0AQY1qKOW4Tp%2FHWoX%2BVsQcf0vU4%2Bd36qU6bXv84HBPdNeJ5A%3D%3D%0A-----END%20CERTIFICATE%20REQUEST-----%0A
404,Your certificate request has failed. ID: 434073
- Re: [HTTPS API] CSR format; certificate auth; also, mapc, 06/08/2013
- <Possible follow-up(s)>
- Re: [HTTPS API] CSR format; certificate auth; also, mapc, 06/09/2013
- Re: [HTTPS API] CSR format; certificate auth; also, Benny Baumann, 06/09/2013
Archive powered by MHonArc 2.6.16.