Encryption On-the-Wire API
Couchbase Server APIs for self-signed and X.509 certificates manage encryption on-the-wire.
Retrieve Node Certificate Info
Retrieves information about a node certificate.
GET /pools/default/certificate/node/<host:port>
Description
This command retrieves information about the uploaded node certificate.
Example
$ curl -X GET http://user:password@127.0.0.1:8091/pools/default/certificate/node/127.0.0.1:8091
      {"subject":"CN=127.0.0.1","expires":"2049-12-31T15:59:59.000Z","pem":"
      -----BEGIN CERTIFICATE-----\nMIIC+DCCAeKgAwIBAgIIFB4b2mfRLHcwCwYJKoZIhvcNAQELMCAxHjAcBgNVBAMT\
      nFUludGVtZWRpYXRlIEF1dGhvcml0eTAeFw0xMzAxMDEwMDAwMDBaFw00OTEyMzEy\
      nMzU5NTlaMBQxEjAQBgNVBAMTCTEyNy4wLjAuMTCCASIwDQYJKoZIhvcNAQEBBQAD\
      nggEPADCCAQoCggEBAOO9byay0UjHI4Q1dd4zMgGPc7FkGDaH/5PEj7PdjlnZC6zm\
      ncsjqAyAq9WzI+LAzzfZXm2Da8MwJZX/MsvEcG15CV8bK075D1G4R7B+E+OIG//Xl\
      ntKZe7J0YqsW5KwZlDHWkyJ06ylWl/6hvw3YkG7mUOKi5WWuj8NGHP24cImkaon4+\
      nf8D6t3vEWFQEwb8IMUDgzwdihXdSqdzQ3a9ECKbl2BKeEFbPrzWoIYjWF5dyrZg3\
      n4/3+SHZ+uZzlG2x6cL2lrs7WUJXseasjkSFuQQzLZPIcJlJxlwXhKvfvucbgT9rG\
      nwopcjS3SaXnmreKF3jLmQGAPHYb8X1yCTTBQVLcCAwEAAaNGMEQwDgYDVR0PAQH\
      nBAQDAgCgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwDwYDVR0R\
      nBAgwBocEfwAAATALBgkqhkiG9w0BAQsDggEBAEEWcC8uJ/Zk/4UFYTrQyvds/Kj8\
      n8/SNWVIcMNLHNsxPGtbrsRa9VFjPlCEB+dPpgIFq08626zRQ2Lb1qRZGWj+YM5gC\
      nhxaERSURrvr6i8x9jwALkQUxitRkNP6cb+wi4BCn8qjgxxyZ4g+CHEO9pHceljIn\
      n/bwY+hHTG0a+8hVj/14TGExFrEzNhyeSMmGpdFq3PNT97gRuVvFAz6ZD8qAt+S0j\
      nT61oShOpwNwhWnkK3OynN2JdVT+G496/xRayDPXG40V/AkJs3udZ6QmoeifkJ8sj\
      nYgOxdPWLMnAJ7fw6l/XE7XVD/Jld+pJrFa4YqHBkWL+s20OQmuWs8dVgVQ0=\n
      -----END CERTIFICATE-----\n\n"}
Upload and Regenerate Certificate
Uploads a pem-encoded root certificate (cluster CA) to the cluster.
POST /controller/uploadClusterCA
Description
The uploaded certificate will be displayed in the UI and used for XDCR replications and for client certificate stores.
Examples
curl -X POST --data-binary "@/path/root.pem" http://user:password@127.0.0.1:8091/controller/uploadClusterCA
curl -X POST --data-binary "@./ca.pem" http://Administrator:password@127.0.0.1:8091/controller/uploadClusterCA
Returns
Same output as in the GET /pools/default/certificate?extended=true method.
Setting up per node CA certificate
curl -X POST http://Administrator:password@127.0.0.1:8091/node/controller/reloadCertificate
Regenerating a self-signed certificate
If you configured Couchbase to use X.509 certificates, and you want to go back to the self-signed certificates, you can do this by regenerating the self-signed cluster certificate test.pem.
curl -X POST http://Administrator:password@remoteHost:8091/controller/regenerateCertificate
Return Cluster Certificate
Returns the current cluster certificate.
GET /pools/default/certificate
Description
If you include the parameter extended=true, it returns the extended certificate information:
{"cert": {"type" : ..., "pem" : ..., "subject" : ..., "expires" : ...}, warnings: []}
Parameters
- 
type- generated or uploaded.
- 
pem- pem encoded certificate.
- 
subject- abbreviated certificate subject (*).
- 
expires- expiration data (*).
- 
warnings- warnings to be displayed in the UI.
(*) not available for generated certificates.
Example
$ curl -X GET http://user:password@127.0.0.1:8091/pools/default/
        certificate?extended=true
{"cert":{"type":"uploaded","pem":"-----BEGIN CERTIFICATE-----
          \nMIIC6DCCAdKgAwIBAgIIFB4YAjF90MgwCwYJKoZIhvcNAQELMBkxFzAVBgNVBAMT\
          nDlJvb3QgQXV0aG9yaXR5MB4XDTEzMDEwMTAwMDAwMFoXDTQ5MTIzMTIzNTk1OVow\
          nGTEXMBUGA1UEAxMOUm9vdCBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IB\
          nDwAwggEKAoIBAQDBum06stdiYQI2HQyjZeg3s0Pz8CziXqSg4GicaeKNloOfASwl\
          n+8LQDX5Dgb+Mc4ZxXYo9/7eVlsvSiZPZcv9D2pubjR4ZtEDY5t9AlXDiYTHK0zxG\
          nB34Llnz3gJmkAEAsjy4g+RfwpJS4kGVzFhrzgxOQJIJogZnLduk+mHFjyXI3X+8y\
          nf4KF8ijrXP8bbfa0kM1tjvcttaK7vTEP+G/mbOEFZErhScXT9eKRlgwsitaH7kI0\
          nimpqg3YX1znLQ5n+eLzeVR1HhszJrFaaaRHL0esml6jLEcZBBitJSuEuaMLp9ZWB\
          nA479ZHmN/vZc1SwfMrCE2+TE0ytW3O7eFXjXAgMBAAGjODA2MA4GA1UdDwEB/wQE\
          nAwIApDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MAsGCSqG\
          nSIb3DQEBCwOCAQEACReNkvIXhjPO0rWpgdVSqnLrjUb6DJf0n4Uyq6PfukeEfBtF\
          n59L+xUcoY6NFM5N6qRlGgg0eqTCVmQ6N6lKnnZRH23g3BPLjU2EqAtBHIc5f2JoM\
          nd1E4UD2v20MlFoeHL0YljGTywlqStoZYc2uYUJnJAVq2D1dWcwP2S7G6caLHMlAl\
          nQVYIZvjCGuqGckV1EqOTT7uKPH9ulljtYKVIq/aTbINjX0hJsaoN2hOfHVTp2Shq\
          neLMwgfNdg6zWRyeL/Mi/3jmSjSH61zyHva2xlY8Pl6Zurx/+pF1qN27+P8tCjsDO\
          nD2hAADXr8WRqC1Sd+xAGcFkvqOOFv/HRxDej3A==\
          n-----END CERTIFICATE-----\n",
          "subject":"CN=Root Authority","expires":"2049-12-31T15:59:59.000Z"},
          "warnings":[{"node":"n_0@127.0.0.1","message":
          "Certificate is not signed with cluster CA."}]}
Possible warnings:
{"node":"n_0@127.0.0.1","message":"Certificate is not signed with cluster CA."}
{"node":"n_0@127.0.0.1","message":"Certificate is expired."}
{"node":"n_0@127.0.0.1","message":"Certificate will expire soon.","expires":"2049-12-31T15:59:59.000Z"}
Apply Certificate to a Node
Takes chain.pem and pkey.pem and applies to a node.
POST /node/controller/reloadCertificate
Description
This command grabs chain.pem and pkey.pem from the data folder/inbox/ directory and applies them to the node.
Parameters
- 
chain.pem- Contains a chain of pem-encoded certificates starting from the node certificate and ending with the last intermediate certificate that precedes the cluster certificate.
- 
pkey.pem- Contains the pem-encoded private key for the node certificate.
Example
curl -X POST http://user:password@127.0.0.1:8091/node/controller/reloadCertificate
Returns
- 
200- If it is a success
- 
400- An error message if it failed.