google oauth2 how to get private key for service account

private_key is something like

"-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCxrDY54c6zXbPl\n47hElulfTBHWbI/03n/3ZwVhuaVnips11KyDImSdUH\n-----END PRIVATE KEY-----\n

should I remove "\n" before using it? Right now, I'm trying to sign the UTF-8 representation of the input using SHA256withRSA accordingly this document https://developers.google.com/identity/protocols/oauth2/service-account#httprest

Please correct me if there is anything wrong with the answer here JWT Computing the Signature SHA256withRSA


Open your project in gcloud

Go to "APIs & Services"

Go to "Credentials".

Click "Create new client ID" or go to Service account if already created.

Select "Service Account".

Go to "Keys" and select "Create new key" from "ADD KEY" drop down

Select JSON or P12 as needed


Update (2013-12-18): Google updated the Cloud Console this morning. The new instructions for generating a private key are:

  1. Open your project.
  2. Go to "APIs & Auth".
  3. Go to "Credentials".
  4. Click "Create new client ID".
  5. Select "Service Account".

Obsolete instructions (prior to 2013-12-18): Here is how to generate a private key in the Google Cloud Console:

  1. Open your project.
  2. Go to "APIs & Auth".
  3. Go to "Registered apps".
  4. Click "Register app".
  5. Select "Web application".
  6. Open "Certificate".
  7. Click "Generate Certificate".
  8. Click "Download Private Key".
  9. Click "View Public Key" to dismiss the dialog.

The URL in the JSON instead takes you to a public URL where the public key for corresponding private key can be found - that's not what you are looking for.