1*c15f66b0SDixsie Wolmers<div class="uib-modal__content"> 2*c15f66b0SDixsie Wolmers <div class="modal-header"> 3*c15f66b0SDixsie Wolmers <h2 class="modal-title" id="modal_label"> 4*c15f66b0SDixsie Wolmers Generate a Certificate Signing Request (CSR) 5*c15f66b0SDixsie Wolmers </h2> 6*c15f66b0SDixsie Wolmers <button 7*c15f66b0SDixsie Wolmers type="button" 8*c15f66b0SDixsie Wolmers class="btn btn--close" 9*c15f66b0SDixsie Wolmers ng-click="$dismiss()" 10*c15f66b0SDixsie Wolmers aria-label="close"> 11*c15f66b0SDixsie Wolmers <icon file="icon-close.svg" aria-hidden="true"></icon> 12*c15f66b0SDixsie Wolmers </button> 13*c15f66b0SDixsie Wolmers </div> 14*c15f66b0SDixsie Wolmers <form name="addCsrForm" id="addCsrForm" novalidate> 15*c15f66b0SDixsie Wolmers <div class="modal-body"> 16*c15f66b0SDixsie Wolmers <div class="row"> 17*c15f66b0SDixsie Wolmers <fieldset class="column large-8 add-csr__section"> 18*c15f66b0SDixsie Wolmers <legend class="content-label">General</legend> 19*c15f66b0SDixsie Wolmers <div class="row"> 20*c15f66b0SDixsie Wolmers <div class="column large-6"> 21*c15f66b0SDixsie Wolmers <label for="certType" class="content-label"> 22*c15f66b0SDixsie Wolmers Certificate Type * 23*c15f66b0SDixsie Wolmers </label> 24*c15f66b0SDixsie Wolmers <select 25*c15f66b0SDixsie Wolmers class="add-csr__select" 26*c15f66b0SDixsie Wolmers id="certType" 27*c15f66b0SDixsie Wolmers name="certType" 28*c15f66b0SDixsie Wolmers ng-model="newCSR.certificateCollection" 29*c15f66b0SDixsie Wolmers required> 30*c15f66b0SDixsie Wolmers <option 31*c15f66b0SDixsie Wolmers class="courier-bold" 32*c15f66b0SDixsie Wolmers ng-value="default" 33*c15f66b0SDixsie Wolmers ng-model="selectOption"> 34*c15f66b0SDixsie Wolmers Select an option 35*c15f66b0SDixsie Wolmers </option> 36*c15f66b0SDixsie Wolmers <!-- Do not show CA certificate as an option. 37*c15f66b0SDixsie Wolmers Only a certificate authority can generate a CA certificate 38*c15f66b0SDixsie Wolmers (known as TrustStore Certificate in Redfish) --> 39*c15f66b0SDixsie Wolmers <option 40*c15f66b0SDixsie Wolmers class="courier-bold" 41*c15f66b0SDixsie Wolmers ng-value="type" 42*c15f66b0SDixsie Wolmers ng-repeat="type in allCertificateTypes" 43*c15f66b0SDixsie Wolmers ng-if="type.Description !== 'TrustStore Certificate'"> 44*c15f66b0SDixsie Wolmers {{ type.name }} 45*c15f66b0SDixsie Wolmers </option> 46*c15f66b0SDixsie Wolmers </select> 47*c15f66b0SDixsie Wolmers <div 48*c15f66b0SDixsie Wolmers ng-messages="addCsrForm.certType.$error" 49*c15f66b0SDixsie Wolmers class="form-error" 50*c15f66b0SDixsie Wolmers ng-class="{'visible' : addCsrForm.certType.$touched}"> 51*c15f66b0SDixsie Wolmers <p ng-message="required">Field is required</p> 52*c15f66b0SDixsie Wolmers </div> 53*c15f66b0SDixsie Wolmers </div> 54*c15f66b0SDixsie Wolmers <div class="column large-6"> 55*c15f66b0SDixsie Wolmers <label for="countryCode" class="content-label">Country *</label> 56*c15f66b0SDixsie Wolmers <select 57*c15f66b0SDixsie Wolmers class="add-csr__select" 58*c15f66b0SDixsie Wolmers id="countryCode" 59*c15f66b0SDixsie Wolmers name="countryCode" 60*c15f66b0SDixsie Wolmers ng-model="newCSR.countryCode" 61*c15f66b0SDixsie Wolmers required> 62*c15f66b0SDixsie Wolmers <option 63*c15f66b0SDixsie Wolmers class="courier-bold" 64*c15f66b0SDixsie Wolmers ng-value="" 65*c15f66b0SDixsie Wolmers ng-model="selectOption"> 66*c15f66b0SDixsie Wolmers Select an option 67*c15f66b0SDixsie Wolmers </option> 68*c15f66b0SDixsie Wolmers <option 69*c15f66b0SDixsie Wolmers class="courier-bold" 70*c15f66b0SDixsie Wolmers ng-value="country" 71*c15f66b0SDixsie Wolmers ng-repeat="country in countryList"> 72*c15f66b0SDixsie Wolmers {{ country.Name }} 73*c15f66b0SDixsie Wolmers </option> 74*c15f66b0SDixsie Wolmers </select> 75*c15f66b0SDixsie Wolmers <div 76*c15f66b0SDixsie Wolmers ng-messages="addCsrForm.countryCode.$error" 77*c15f66b0SDixsie Wolmers class="form-error" 78*c15f66b0SDixsie Wolmers ng-class="{'visible' : addCsrForm.countryCode.$touched}"> 79*c15f66b0SDixsie Wolmers <p ng-message="required">Field is required</p> 80*c15f66b0SDixsie Wolmers </div> 81*c15f66b0SDixsie Wolmers </div> 82*c15f66b0SDixsie Wolmers <div class="column large-6"> 83*c15f66b0SDixsie Wolmers <label for="state" class="content-label">State *</label> 84*c15f66b0SDixsie Wolmers <input 85*c15f66b0SDixsie Wolmers class="add-csr__input" 86*c15f66b0SDixsie Wolmers ng-model="newCSR.state" 87*c15f66b0SDixsie Wolmers type="text" 88*c15f66b0SDixsie Wolmers id="state" 89*c15f66b0SDixsie Wolmers name="state" 90*c15f66b0SDixsie Wolmers required/> 91*c15f66b0SDixsie Wolmers <div 92*c15f66b0SDixsie Wolmers ng-messages="addCsrForm.state.$error" 93*c15f66b0SDixsie Wolmers class="form-error" 94*c15f66b0SDixsie Wolmers ng-class="{'visible' : addCsrForm.state.$touched}"> 95*c15f66b0SDixsie Wolmers <p ng-message="required">Field is required</p> 96*c15f66b0SDixsie Wolmers </div> 97*c15f66b0SDixsie Wolmers </div> 98*c15f66b0SDixsie Wolmers <div class="column large-6"> 99*c15f66b0SDixsie Wolmers <label for="city" class="content-label">City *</label> 100*c15f66b0SDixsie Wolmers <input 101*c15f66b0SDixsie Wolmers class="add-csr__input" 102*c15f66b0SDixsie Wolmers id="city" 103*c15f66b0SDixsie Wolmers name="city" 104*c15f66b0SDixsie Wolmers ng-model="newCSR.city" 105*c15f66b0SDixsie Wolmers type="text" 106*c15f66b0SDixsie Wolmers required/> 107*c15f66b0SDixsie Wolmers <div 108*c15f66b0SDixsie Wolmers ng-messages="addCsrForm.city.$error" 109*c15f66b0SDixsie Wolmers class="form-error" 110*c15f66b0SDixsie Wolmers ng-class="{'visible' : addCsrForm.city.$touched}"> 111*c15f66b0SDixsie Wolmers <p ng-message="required">Field is required</p> 112*c15f66b0SDixsie Wolmers </div> 113*c15f66b0SDixsie Wolmers </div> 114*c15f66b0SDixsie Wolmers <div class="column large-6"> 115*c15f66b0SDixsie Wolmers <label for="companyName" class="content-label"> 116*c15f66b0SDixsie Wolmers Company Name * 117*c15f66b0SDixsie Wolmers </label> 118*c15f66b0SDixsie Wolmers <input 119*c15f66b0SDixsie Wolmers class="add-csr__input" 120*c15f66b0SDixsie Wolmers type="text" 121*c15f66b0SDixsie Wolmers ng-model="newCSR.organization" 122*c15f66b0SDixsie Wolmers id="companyName" 123*c15f66b0SDixsie Wolmers name="companyName" 124*c15f66b0SDixsie Wolmers required/> 125*c15f66b0SDixsie Wolmers <div 126*c15f66b0SDixsie Wolmers ng-messages="addCsrForm.companyName.$error" 127*c15f66b0SDixsie Wolmers class="form-error" 128*c15f66b0SDixsie Wolmers ng-class="{'visible' : addCsrForm.companyName.$touched}"> 129*c15f66b0SDixsie Wolmers <p ng-message="required">Field is required</p> 130*c15f66b0SDixsie Wolmers </div> 131*c15f66b0SDixsie Wolmers </div> 132*c15f66b0SDixsie Wolmers <div class="column large-6"> 133*c15f66b0SDixsie Wolmers <label for="companyUnit" class="content-label"> 134*c15f66b0SDixsie Wolmers Company Unit * 135*c15f66b0SDixsie Wolmers </label> 136*c15f66b0SDixsie Wolmers <input 137*c15f66b0SDixsie Wolmers class="add-csr__input" 138*c15f66b0SDixsie Wolmers ng-model="newCSR.companyUnit" 139*c15f66b0SDixsie Wolmers name="companyUnit" 140*c15f66b0SDixsie Wolmers id="companyUnit" 141*c15f66b0SDixsie Wolmers type="text" 142*c15f66b0SDixsie Wolmers required/> 143*c15f66b0SDixsie Wolmers <div 144*c15f66b0SDixsie Wolmers ng-messages="addCsrForm.companyUnit.$error" 145*c15f66b0SDixsie Wolmers class="form-error" 146*c15f66b0SDixsie Wolmers ng-class="{'visible' : addCsrForm.companyUnit.$touched}"> 147*c15f66b0SDixsie Wolmers <p ng-message="required">Field is required</p> 148*c15f66b0SDixsie Wolmers </div> 149*c15f66b0SDixsie Wolmers </div> 150*c15f66b0SDixsie Wolmers <div class="column large-6"> 151*c15f66b0SDixsie Wolmers <label for="commonName" class="content-label"> 152*c15f66b0SDixsie Wolmers Common Name * 153*c15f66b0SDixsie Wolmers </label> 154*c15f66b0SDixsie Wolmers <input 155*c15f66b0SDixsie Wolmers class="add-csr__input" 156*c15f66b0SDixsie Wolmers ng-model="newCSR.commonName" 157*c15f66b0SDixsie Wolmers name="commonName" 158*c15f66b0SDixsie Wolmers type="text" 159*c15f66b0SDixsie Wolmers id="commonName" 160*c15f66b0SDixsie Wolmers required/> 161*c15f66b0SDixsie Wolmers <div 162*c15f66b0SDixsie Wolmers ng-messages="addCsrForm.commonName.$error" 163*c15f66b0SDixsie Wolmers class="form-error" 164*c15f66b0SDixsie Wolmers ng-class="{'visible' : addCsrForm.commonName.$touched}"> 165*c15f66b0SDixsie Wolmers <p ng-message="required">Field is required</p> 166*c15f66b0SDixsie Wolmers </div> 167*c15f66b0SDixsie Wolmers </div> 168*c15f66b0SDixsie Wolmers <div class="column large-6"> 169*c15f66b0SDixsie Wolmers <label for="challengePassword" class="content-label"> 170*c15f66b0SDixsie Wolmers Challenge Password 171*c15f66b0SDixsie Wolmers </label> 172*c15f66b0SDixsie Wolmers <input 173*c15f66b0SDixsie Wolmers class="add-csr__input-no-validation" 174*c15f66b0SDixsie Wolmers id="challengePassword" 175*c15f66b0SDixsie Wolmers ng-model="newCSR.challengePassword" 176*c15f66b0SDixsie Wolmers type="text"/> 177*c15f66b0SDixsie Wolmers </div> 178*c15f66b0SDixsie Wolmers <div class="column large-6"> 179*c15f66b0SDixsie Wolmers <label for="contactPerson" class="content-label"> 180*c15f66b0SDixsie Wolmers Contact Person 181*c15f66b0SDixsie Wolmers </label> 182*c15f66b0SDixsie Wolmers <input 183*c15f66b0SDixsie Wolmers class="add-csr__input-no-validation" 184*c15f66b0SDixsie Wolmers id="contactPerson" 185*c15f66b0SDixsie Wolmers ng-model="newCSR.contactPerson" 186*c15f66b0SDixsie Wolmers type="text"/> 187*c15f66b0SDixsie Wolmers </div> 188*c15f66b0SDixsie Wolmers <div class="column large-6"> 189*c15f66b0SDixsie Wolmers <label for="emailAddress" class="content-label"> 190*c15f66b0SDixsie Wolmers Email Address 191*c15f66b0SDixsie Wolmers </label> 192*c15f66b0SDixsie Wolmers <input 193*c15f66b0SDixsie Wolmers class="add-csr__input-no-validation" 194*c15f66b0SDixsie Wolmers id="emailAddress" 195*c15f66b0SDixsie Wolmers ng-model="newCSR.emailAddress" 196*c15f66b0SDixsie Wolmers type="text"/> 197*c15f66b0SDixsie Wolmers </div> 198*c15f66b0SDixsie Wolmers <div class="column large-6"> 199*c15f66b0SDixsie Wolmers <label 200*c15f66b0SDixsie Wolmers id="alternate-name-label" 201*c15f66b0SDixsie Wolmers for="alternateName" 202*c15f66b0SDixsie Wolmers class="content-label"> 203*c15f66b0SDixsie Wolmers Alternate Name 204*c15f66b0SDixsie Wolmers </label> 205*c15f66b0SDixsie Wolmers <input 206*c15f66b0SDixsie Wolmers class="add-csr__input-no-validation" 207*c15f66b0SDixsie Wolmers ng-model="newCSR.firstAlternativeName" 208*c15f66b0SDixsie Wolmers id="alternateName" 209*c15f66b0SDixsie Wolmers name="alternativeName" 210*c15f66b0SDixsie Wolmers type="text"/> 211*c15f66b0SDixsie Wolmers <div 212*c15f66b0SDixsie Wolmers class="add-csr__additional-alt-names" 213*c15f66b0SDixsie Wolmers ng-repeat="name in names"> 214*c15f66b0SDixsie Wolmers <input 215*c15f66b0SDixsie Wolmers id="alternate-name-input-{{ $index }}" 216*c15f66b0SDixsie Wolmers aria-describedby="alternate-name-label" 217*c15f66b0SDixsie Wolmers class="add-csr__input-no-validation" 218*c15f66b0SDixsie Wolmers ng-model="name.Value" 219*c15f66b0SDixsie Wolmers type="text"/> 220*c15f66b0SDixsie Wolmers <button 221*c15f66b0SDixsie Wolmers aria-label="Delete alternate name field" 222*c15f66b0SDixsie Wolmers aria-controls="alternate-name-input-{{ $index }}" 223*c15f66b0SDixsie Wolmers class="btn btn-tertiary add-csr__alt-name-delete-btn" 224*c15f66b0SDixsie Wolmers ng-click="deleteOptionalRow($index)" 225*c15f66b0SDixsie Wolmers ng-disabled="multiSelected"> 226*c15f66b0SDixsie Wolmers <icon aria-hidden="true" file="icon-trashcan.svg"></icon> 227*c15f66b0SDixsie Wolmers </button> 228*c15f66b0SDixsie Wolmers </div> 229*c15f66b0SDixsie Wolmers </div> 230*c15f66b0SDixsie Wolmers <div class="column large-6"> 231*c15f66b0SDixsie Wolmers <button 232*c15f66b0SDixsie Wolmers class="btn btn-tertiary add-csr__alt-name-add-btn" 233*c15f66b0SDixsie Wolmers ng-click="addOptionalRow()"> 234*c15f66b0SDixsie Wolmers <icon file="icon-plus.svg" aria-hidden="true"></icon> 235*c15f66b0SDixsie Wolmers Add another alternate name 236*c15f66b0SDixsie Wolmers </button> 237*c15f66b0SDixsie Wolmers </div> 238*c15f66b0SDixsie Wolmers </div> 239*c15f66b0SDixsie Wolmers </fieldset> 240*c15f66b0SDixsie Wolmers <fieldset 241*c15f66b0SDixsie Wolmers class="column medium-12 large-4 add-csr__section add-csr__section--border"> 242*c15f66b0SDixsie Wolmers <legend class="content-label">Private key</legend> 243*c15f66b0SDixsie Wolmers <div class="add-csr__container-private-key"> 244*c15f66b0SDixsie Wolmers <div class="add-csr__container-private-key"> 245*c15f66b0SDixsie Wolmers <label for="keyPairAlgorithm" class="content-label"> 246*c15f66b0SDixsie Wolmers Key Pair Algorithm * 247*c15f66b0SDixsie Wolmers </label> 248*c15f66b0SDixsie Wolmers <select 249*c15f66b0SDixsie Wolmers class="add-csr__select" 250*c15f66b0SDixsie Wolmers ng-model="newCSR.keyPairAlgorithm" 251*c15f66b0SDixsie Wolmers id="keyPairAlgorithm" 252*c15f66b0SDixsie Wolmers name="keyPairAlgorithm" 253*c15f66b0SDixsie Wolmers required> 254*c15f66b0SDixsie Wolmers <option 255*c15f66b0SDixsie Wolmers class="courier-bold" 256*c15f66b0SDixsie Wolmers ng-value="" 257*c15f66b0SDixsie Wolmers ng-model="selectOption"> 258*c15f66b0SDixsie Wolmers Select an option 259*c15f66b0SDixsie Wolmers </option> 260*c15f66b0SDixsie Wolmers <option 261*c15f66b0SDixsie Wolmers class="courier-bold" 262*c15f66b0SDixsie Wolmers ng-value="data" 263*c15f66b0SDixsie Wolmers ng-repeat="data in keyPairAlgorithm"> 264*c15f66b0SDixsie Wolmers {{ data }} 265*c15f66b0SDixsie Wolmers </option> 266*c15f66b0SDixsie Wolmers </select> 267*c15f66b0SDixsie Wolmers <div 268*c15f66b0SDixsie Wolmers ng-messages="addCsrForm.keyPairAlgorithm.$error" 269*c15f66b0SDixsie Wolmers class="form-error" 270*c15f66b0SDixsie Wolmers ng-class="{'visible' : addCsrForm.keyPairAlgorithm.$touched}"> 271*c15f66b0SDixsie Wolmers <p ng-message="required">Field is required</p> 272*c15f66b0SDixsie Wolmers </div> 273*c15f66b0SDixsie Wolmers </div> 274*c15f66b0SDixsie Wolmers <div ng-if="newCSR.keyPairAlgorithm == 'EC'"> 275*c15f66b0SDixsie Wolmers <div class="large-12"> 276*c15f66b0SDixsie Wolmers <label for="keyCurveId" class="content-label"> 277*c15f66b0SDixsie Wolmers Key Curve ID 278*c15f66b0SDixsie Wolmers </label> 279*c15f66b0SDixsie Wolmers <select 280*c15f66b0SDixsie Wolmers class="add-csr__select" 281*c15f66b0SDixsie Wolmers ng-model="newCSR.keyCurveId" 282*c15f66b0SDixsie Wolmers id="keyCurveId" 283*c15f66b0SDixsie Wolmers name="keyCurveId" 284*c15f66b0SDixsie Wolmers required> 285*c15f66b0SDixsie Wolmers <option class="courier-bold" ng-value="">None</option> 286*c15f66b0SDixsie Wolmers <option 287*c15f66b0SDixsie Wolmers class="courier-bold" 288*c15f66b0SDixsie Wolmers ng-value="data" 289*c15f66b0SDixsie Wolmers ng-repeat="data in keyCurveId"> 290*c15f66b0SDixsie Wolmers {{ data }} 291*c15f66b0SDixsie Wolmers </option> 292*c15f66b0SDixsie Wolmers </select> 293*c15f66b0SDixsie Wolmers <div 294*c15f66b0SDixsie Wolmers ng-messages="addCsrForm.keyCurveId.$error" 295*c15f66b0SDixsie Wolmers class="form-error" 296*c15f66b0SDixsie Wolmers ng-class="{'visible' : addCsrForm.keyCurveId.$touched}"> 297*c15f66b0SDixsie Wolmers <p ng-message="required">Field is required</p> 298*c15f66b0SDixsie Wolmers </div> 299*c15f66b0SDixsie Wolmers </div> 300*c15f66b0SDixsie Wolmers </div> 301*c15f66b0SDixsie Wolmers <div ng-if="newCSR.keyPairAlgorithm =='RSA'"> 302*c15f66b0SDixsie Wolmers <div class="large-12"> 303*c15f66b0SDixsie Wolmers <label for="keyBitLength" class="content-label"> 304*c15f66b0SDixsie Wolmers Key Bit Length * 305*c15f66b0SDixsie Wolmers </label> 306*c15f66b0SDixsie Wolmers <select 307*c15f66b0SDixsie Wolmers class="add-csr__select" 308*c15f66b0SDixsie Wolmers ng-model="newCSR.keyBitLength" 309*c15f66b0SDixsie Wolmers id="keyBitLength" 310*c15f66b0SDixsie Wolmers name="keyBitLength" 311*c15f66b0SDixsie Wolmers required> 312*c15f66b0SDixsie Wolmers <option class="courier-bold" ng-value=""> 313*c15f66b0SDixsie Wolmers Select an option 314*c15f66b0SDixsie Wolmers </option> 315*c15f66b0SDixsie Wolmers <option 316*c15f66b0SDixsie Wolmers class="courier-bold" 317*c15f66b0SDixsie Wolmers ng-value="data" 318*c15f66b0SDixsie Wolmers ng-repeat="data in keyBitLength"> 319*c15f66b0SDixsie Wolmers {{ data }} 320*c15f66b0SDixsie Wolmers </option> 321*c15f66b0SDixsie Wolmers </select> 322*c15f66b0SDixsie Wolmers <div 323*c15f66b0SDixsie Wolmers ng-messages="addCsrForm.keyBitLength.$error" 324*c15f66b0SDixsie Wolmers class="form-error" 325*c15f66b0SDixsie Wolmers ng-class="{'visible' : addCsrForm.keyBitLength.$touched}"> 326*c15f66b0SDixsie Wolmers <p ng-message="required">Field is required</p> 327*c15f66b0SDixsie Wolmers </div> 328*c15f66b0SDixsie Wolmers </div> 329*c15f66b0SDixsie Wolmers </div> 330*c15f66b0SDixsie Wolmers </div> 331*c15f66b0SDixsie Wolmers </fieldset> 332*c15f66b0SDixsie Wolmers </div> 333*c15f66b0SDixsie Wolmers </div> 334*c15f66b0SDixsie Wolmers <div class="modal-footer"> 335*c15f66b0SDixsie Wolmers <button 336*c15f66b0SDixsie Wolmers type="reset" 337*c15f66b0SDixsie Wolmers class="btn btn-secondary" 338*c15f66b0SDixsie Wolmers ng-click="$dismiss()"> 339*c15f66b0SDixsie Wolmers Cancel 340*c15f66b0SDixsie Wolmers </button> 341*c15f66b0SDixsie Wolmers <button 342*c15f66b0SDixsie Wolmers type="submit" 343*c15f66b0SDixsie Wolmers class="btn btn-primary" 344*c15f66b0SDixsie Wolmers ng-click="getCSRCode();addCsrForm.$setUntouched();$dismiss()" 345*c15f66b0SDixsie Wolmers ng-disabled="addCsrForm.$invalid"> 346*c15f66b0SDixsie Wolmers Generate CSR 347*c15f66b0SDixsie Wolmers </button> 348*c15f66b0SDixsie Wolmers </div> 349*c15f66b0SDixsie Wolmers </form> 350*c15f66b0SDixsie Wolmers </div> 351*c15f66b0SDixsie Wolmers</div> 352