@@ -257,6 +257,45 @@ func TestChallengeHTTP_Client_Obtain(t *testing.T) {
257
257
assert .Empty (t , resource .CSR )
258
258
}
259
259
260
+ func TestChallengeHTTP_Client_Obtain_profile (t * testing.T ) {
261
+ err := os .Setenv ("LEGO_CA_CERTIFICATES" , "./fixtures/certs/pebble.minica.pem" )
262
+ require .NoError (t , err )
263
+ defer func () { _ = os .Unsetenv ("LEGO_CA_CERTIFICATES" ) }()
264
+
265
+ privateKey , err := rsa .GenerateKey (rand .Reader , 2048 )
266
+ require .NoError (t , err , "Could not generate test key" )
267
+
268
+ user := & fakeUser {privateKey : privateKey }
269
+ config := lego .NewConfig (user )
270
+ config .CADirURL = load .PebbleOptions .HealthCheckURL
271
+
272
+ client , err := lego .NewClient (config )
273
+ require .NoError (t , err )
274
+
275
+ err = client .Challenge .SetHTTP01Provider (http01 .NewProviderServer ("" , "5002" ))
276
+ require .NoError (t , err )
277
+
278
+ reg , err := client .Registration .Register (registration.RegisterOptions {TermsOfServiceAgreed : true })
279
+ require .NoError (t , err )
280
+ user .registration = reg
281
+
282
+ request := certificate.ObtainRequest {
283
+ Domains : []string {"acme.wtf" },
284
+ Bundle : true ,
285
+ Profile : "shortlived" ,
286
+ }
287
+ resource , err := client .Certificate .Obtain (request )
288
+ require .NoError (t , err )
289
+
290
+ require .NotNil (t , resource )
291
+ assert .Equal (t , "acme.wtf" , resource .Domain )
292
+ assert .Regexp (t , `https://localhost:14000/certZ/[\w\d]{14,}` , resource .CertURL )
293
+ assert .Regexp (t , `https://localhost:14000/certZ/[\w\d]{14,}` , resource .CertStableURL )
294
+ assert .NotEmpty (t , resource .Certificate )
295
+ assert .NotEmpty (t , resource .IssuerCertificate )
296
+ assert .Empty (t , resource .CSR )
297
+ }
298
+
260
299
func TestChallengeHTTP_Client_Obtain_notBefore_notAfter (t * testing.T ) {
261
300
err := os .Setenv ("LEGO_CA_CERTIFICATES" , "./fixtures/certs/pebble.minica.pem" )
262
301
require .NoError (t , err )
@@ -422,6 +461,50 @@ func TestChallengeTLS_Client_ObtainForCSR(t *testing.T) {
422
461
assert .NotEmpty (t , resource .CSR )
423
462
}
424
463
464
+ func TestChallengeTLS_Client_ObtainForCSR_profile (t * testing.T ) {
465
+ err := os .Setenv ("LEGO_CA_CERTIFICATES" , "./fixtures/certs/pebble.minica.pem" )
466
+ require .NoError (t , err )
467
+ defer func () { _ = os .Unsetenv ("LEGO_CA_CERTIFICATES" ) }()
468
+
469
+ privateKey , err := rsa .GenerateKey (rand .Reader , 2048 )
470
+ require .NoError (t , err , "Could not generate test key" )
471
+
472
+ user := & fakeUser {privateKey : privateKey }
473
+ config := lego .NewConfig (user )
474
+ config .CADirURL = load .PebbleOptions .HealthCheckURL
475
+
476
+ client , err := lego .NewClient (config )
477
+ require .NoError (t , err )
478
+
479
+ err = client .Challenge .SetTLSALPN01Provider (tlsalpn01 .NewProviderServer ("" , "5001" ))
480
+ require .NoError (t , err )
481
+
482
+ reg , err := client .Registration .Register (registration.RegisterOptions {TermsOfServiceAgreed : true })
483
+ require .NoError (t , err )
484
+ user .registration = reg
485
+
486
+ csrRaw , err := os .ReadFile ("./fixtures/csr.raw" )
487
+ require .NoError (t , err )
488
+
489
+ csr , err := x509 .ParseCertificateRequest (csrRaw )
490
+ require .NoError (t , err )
491
+
492
+ resource , err := client .Certificate .ObtainForCSR (certificate.ObtainForCSRRequest {
493
+ CSR : csr ,
494
+ Bundle : true ,
495
+ Profile : "shortlived" ,
496
+ })
497
+ require .NoError (t , err )
498
+
499
+ require .NotNil (t , resource )
500
+ assert .Equal (t , "acme.wtf" , resource .Domain )
501
+ assert .Regexp (t , `https://localhost:14000/certZ/[\w\d]{14,}` , resource .CertURL )
502
+ assert .Regexp (t , `https://localhost:14000/certZ/[\w\d]{14,}` , resource .CertStableURL )
503
+ assert .NotEmpty (t , resource .Certificate )
504
+ assert .NotEmpty (t , resource .IssuerCertificate )
505
+ assert .NotEmpty (t , resource .CSR )
506
+ }
507
+
425
508
func TestRegistrar_UpdateAccount (t * testing.T ) {
426
509
err := os .Setenv ("LEGO_CA_CERTIFICATES" , "./fixtures/certs/pebble.minica.pem" )
427
510
require .NoError (t , err )
0 commit comments