Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jenkinsci/osf-builder-suite-for-sfcc-credentials-plugin

OSF Builder Suite For Salesforce Commerce Cloud :: Credentials
https://github.com/jenkinsci/osf-builder-suite-for-sfcc-credentials-plugin

credentials demandware jenkins jenkins-ci jenkins-plugin salesforce-commerce-cloud

Last synced: 3 months ago
JSON representation

OSF Builder Suite For Salesforce Commerce Cloud :: Credentials

Awesome Lists containing this project

README

        

# OSF Builder Suite For Salesforce Commerce Cloud :: Credentials
Provides various credential types for OSF Builder Suite For Salesforce Commerce Cloud plugins

- [OSF Builder Suite For Salesforce Commerce Cloud ::
Deploy](https://plugins.jenkins.io/osf-builder-suite-for-sfcc-deploy)
- [OSF Builder Suite For Salesforce Commerce Cloud ::
Data Import](https://plugins.jenkins.io/osf-builder-suite-for-sfcc-data-import/)
- [OSF Builder Suite For Salesforce Commerce Cloud ::
Run Job](https://plugins.jenkins.io/osf-builder-suite-for-sfcc-run-job/)

## Dev
`mvn hpi:run` - run the plugin

`mvn release:prepare release:perform` - release new version of the plugin and publish it to Jenkins repository

# Two Factor Authentication

## Introduction

Two-factor authentication for code deployment is a PCI requirement, to
be used on the Staging instance only. Code deployment is not possible to
Production. However, standard one-factor code deployment can be used to
all other instances, including Development and Sandbox instances.

The Staging instance has the following hostnames:

| Hostname| To be used... |
|-------------------------------------------:|-----------------------------------------------------------------------------------------------|
| `cert.staging.web.customer.demandware.net`| for code deployments. |
| `staging-web-customer.demandware.net`| by merchants, developer, etc. to work with the Business Manager or preview in the storefront. |

## Two factor authentication Certificate.zip file

The **Certificate.zip** file is attached to a SFCC support case for the
customer who originated the request to enable two-factor authentication.

This file contains:

- $name.key
- $name.crt
- $name.srl
- $name.txt

**$name** is an identifier unique to a particular customer. For example,
it can reflect the instance or company name. These files should be
considered highly sensitive. While they are only part of what is needed
to upload SSL customization to the SFCC system, they should be provided
to a single trusted employee within your organization, typically the
administrator of your SFCC instances.

**$name.txt** contains the pass phrase that was used to create the
certificate. You must provide this pass phrase every time you sign a key
request.

For example:

cert.merchant.sitename.net_01.key
cert.merchant.sitename.net_01.crt
cert.merchant.sitename.net.srl
cert.merchant.sitename.net_01.txt

## Creating and using certificates

### 1. Create a new key and request using OpenSSL

#### 1.1 Extract the Certificate.zip file in a new empty folder.

#### 1.2 Open the command prompt and cd to the folder above.

#### 1.3 Enter the following command to generate a request:

> openssl req -new -sha256 -newkey rsa:2048 -nodes -out $user.req -keyout $user.key

**$user** indicates the user that this key is for. We recommend that it
be the same as the Business Manager user they are authenticating
against. For example, if the SFCC instance username is jsmith, the
certificate should be named jsmith.


**Note:** When prompted for information to be included in the
certificate request, please provide information for the user that will
be using the certificate (for example, jsmith).


**CAUTION:** Do not use generic names such as Release Team.

The output should be as follows:

> Generating a 2048 bit RSA private key
> ....................++++++++++++
> ........++++++++++++
> writing new private key to '$user.key'
> -----
> You are about to be asked to enter information that will be incorporated into your certificate request.
> What you are about to enter is what is called a Distinguished Name or a DN.
> There are quite a few fields but you can leave some blank
> For some fields there will be a default value, If you enter '.', the field will be left blank.
> -----
> Country Name (2 letter code) [AU]:
> State or Province Name (full name) [Some-State]:
> Locality Name (city) []:
> Organization Name (company) [Internet Widgits Pty Ltd]:
> Organizational Unit Name (section) []:
> Common Name (YOUR name) []:
> Email Address []:
> Please enter the following 'extra' attributes
> to be sent with your certificate request
> A challenge password []:
> An optional company name []:

**Note:** The last two fields are optional. We recommend that you leave
them blank. The challenge password is not used.

#### 1.4 Fill out the request with your company name information and a valid email address.

This should be the valid email address of the person using the
certificate.

For example:

> Country Name (2 letter code) [AU]: US
> State or Province Name (full name) [Some-State]: Massachusetts
> Locality Name (city) []:
> Organization Name (company) [Internet Widgits Pty Ltd]: Your Organizational Unit Name (section) []:
> Customer Services
> Common Name (YOUR name) []: John Smith
> Email Address []: [email protected]
> Please enter the following 'extra' attributes to be sent with your certificate request
> A challenge password []:
> An optional company name []:

**Note:** SFCC supports OpenSSL ( )
certificates.

### 2. Sign the certificate request ($user.req) with your certificate

#### 2.1 Enter the following OpenSSL command into the command prompt:

> openssl x509 -CA $name.crt -CAkey $name.key -CAserial $name.srl -req -in $user.req -out $user.pem -days $days

**$days** - the number of valid days for this client certificate
following creation

**$name** - the name provided by SFCC

**$user** - the user of the client certificate you are signing. For
example: jsmith

Note: The $name portion of the $name.srl file may be slightly different
from other $name files. Make sure you enter the file name correctly.

For example:

> openssl x509 -CA cert.staging.web.customer.demandware.net_01.crt -CAkey cert.staging.web.customer.demandware.net_01.key -CAserial cert.staging.web.customer.demandware.net.srl -req -in jsmith.req -out jsmith.pem -days 365

The certificate will be valid until it expires or you ask SFCC to revoke
all certificates. Therefore you must plan carefully when assigning
certificates to users.

The output of this command should look as follows:

> Signature ok
> subject=/C=XX/ST=XX/L=XX/O=XX/OU=XX/CN=XX/[email protected]
> Getting CA Private Key
> Enter pass phrase for $name.key:

#### 2.2 Enter the pass phrase (contained in $name.txt) to sign the certificate.

### 3. Export the certificate and client information to pkcs12 format.

#### 3.1 Enter the following command into the command prompt:

> openssl pkcs12 -export -in $user.pem -inkey $user.key -certfile $name.crt -name "$user" -out $user.p12

**$name** is the name provided by SFCC.

**$user** is the user of the client certificate you are signing.

For example:

> openssl pkcs12 -export -in jsmith.pem -inkey jsmith.key -certfile cert.staging.web.customer.demandware.net_01.crt -name "jsmith" -out jsmith.p12

#### 3.2 Specify an export password for this file.

This password must be provided to the end user who will be loading the
certificate into Studio or another keystore.

The pkcs12 certificate can be used to connect to a Staging instance via
Eclipse. The certificate can also be used with other WebDAV clients,
such as the Windows built in WebDAV client.

# Version history