Ascio Web Service v3

Perl CreateOrder

Register an SSL-Certificate.

Ascio is providing multiple DCV-verficiation methods, that can be used for Single-Domain certificates, Multi-Domain certificates and Wildcard cerficates.

  • E-Mail verifcation (please provide a comma separated list of the approval addresses. Each SAN needs to be verified)
  • DNS verification (Each SAN needs a DNS record and needs to be verified)
  • File verification (Please place the verification file on every domain you are using.)
  • Fully automated DCV-verification and installation on the Webserver. Autoinstall SSL for Cpanel and Plesk

For more information about automating the SSL DCV-Process please read here: Automating SSL.

CreateOrderResponse CreateOrder(SecurityHeaderDetails securityHeader,CreateOrderRequest request)

Response codes

ResultCodeMessageValue
200OK
401Authorization failed
501Syntax error in parameters or arguments
506Required attribute missing in request

CreateOrder Request

PropertyType
request

CreateOrderResponse

PropertyDescription
CreateOrderResult
OrderInfo
ResultCodeExample: 1
ResultMessage
Errors

Used in Classes

PropertyValue
OrderTypeRegister
requestSslCertificateOrderRequest

Perl example

use SOAP::Lite;
use Date::Format;
$proxy = "https://aws.demo.ascio.com/v3/AscioService.svc";
$namespace = "http://www.ascio.com/2007/01";
$soap = SOAP::Lite
    ->on_action( sub { "CreateOrder" } )
    ->proxy($proxy)
    ->ns("http://www.ascio.com/2013/02", "v3")
    ->ns("http://www.ascio.com/2013/02/AscioService", "service");
    
# Please enter your ascio-credentials here

my $header = SOAP::Header->new(
            name =>"v3:SecurityHeaderDetails",
            value => {"v3:Account" => "username", "v3:Password" =>"password"} 
        );
$soap->autotype(0);
$method = SOAP::Data->name("service:CreateOrder")->attr({xmlns => $namespace});

#KeyValue
$keyValue =  \SOAP::Data->value(
	SOAP::Data->name('v3:Key','Title'),
	SOAP::Data->name('v3:Value','Mr.')
);

#Extensions
$ownerExtensions =  \SOAP::Data->value(
);

#Registrant
$owner =  \SOAP::Data->value(
	SOAP::Data->name('v3:FirstName','John'),
	SOAP::Data->name('v3:LastName','Doe'),
	SOAP::Data->name('v3:OrgName','Ascio'),
	SOAP::Data->name('v3:Address1','Address1Test'),
	SOAP::Data->name('v3:Address2','Address2Test'),
	SOAP::Data->name('v3:City','CityTest'),
	SOAP::Data->name('v3:State','StateTest'),
	SOAP::Data->name('v3:PostalCode','888349'),
	SOAP::Data->name('v3:CountryCode','DK'),
	SOAP::Data->name('v3:Phone','+45.123456789'),
	SOAP::Data->name('v3:Fax','+45.987654321'),
	SOAP::Data->name('v3:Email','test@testemail.com'),
	SOAP::Data->name('v3:Type','owner'),
	SOAP::Data->name('v3:Details','DetailsTest'),
	SOAP::Data->name('v3:OrganisationNumber','OrganisationNumberTest'),
	SOAP::Data->name('v3:Extensions',$ownerExtensions),
	SOAP::Data->name('v3:VatNumber','VatNumberTest'),
	SOAP::Data->name('v3:NexusCategory','NexusCategoryTest')
);

#KeyValue
$keyValue =  \SOAP::Data->value(
	SOAP::Data->name('v3:Key','Title'),
	SOAP::Data->name('v3:Value','Mr.')
);

#Extensions
$adminExtensions =  \SOAP::Data->value(
);

#Contact
$admin =  \SOAP::Data->value(
	SOAP::Data->name('v3:FirstName','John'),
	SOAP::Data->name('v3:LastName','Doe'),
	SOAP::Data->name('v3:OrgName','Ascio'),
	SOAP::Data->name('v3:Address1','Address1Test'),
	SOAP::Data->name('v3:Address2','Address2Test'),
	SOAP::Data->name('v3:City','CityTest'),
	SOAP::Data->name('v3:State','StateTest'),
	SOAP::Data->name('v3:PostalCode','888349'),
	SOAP::Data->name('v3:CountryCode','DK'),
	SOAP::Data->name('v3:Phone','+45.123456789'),
	SOAP::Data->name('v3:Fax','+45.987654321'),
	SOAP::Data->name('v3:Email','test@testemail.com'),
	SOAP::Data->name('v3:Type','owner'),
	SOAP::Data->name('v3:Details','DetailsTest'),
	SOAP::Data->name('v3:OrganisationNumber','OrganisationNumberTest'),
	SOAP::Data->name('v3:Extensions',$adminExtensions)
);

#KeyValue
$keyValue =  \SOAP::Data->value(
	SOAP::Data->name('v3:Key','Title'),
	SOAP::Data->name('v3:Value','Mr.')
);

#Extensions
$techExtensions =  \SOAP::Data->value(
);

#Contact
$tech =  \SOAP::Data->value(
	SOAP::Data->name('v3:FirstName','John'),
	SOAP::Data->name('v3:LastName','Doe'),
	SOAP::Data->name('v3:OrgName','Ascio'),
	SOAP::Data->name('v3:Address1','Address1Test'),
	SOAP::Data->name('v3:Address2','Address2Test'),
	SOAP::Data->name('v3:City','CityTest'),
	SOAP::Data->name('v3:State','StateTest'),
	SOAP::Data->name('v3:PostalCode','888349'),
	SOAP::Data->name('v3:CountryCode','DK'),
	SOAP::Data->name('v3:Phone','+45.123456789'),
	SOAP::Data->name('v3:Fax','+45.987654321'),
	SOAP::Data->name('v3:Email','test@testemail.com'),
	SOAP::Data->name('v3:Type','owner'),
	SOAP::Data->name('v3:Details','DetailsTest'),
	SOAP::Data->name('v3:OrganisationNumber','OrganisationNumberTest'),
	SOAP::Data->name('v3:Extensions',$techExtensions)
);

#SslCertificate
$sslCertificate =  \SOAP::Data->value(
	SOAP::Data->name('v3:CommonName','ascio-test-domain.com'),
	SOAP::Data->name('v3:ProductCode','positivessl'),
	SOAP::Data->name('v3:WebServerType','ApacheSsl'),
	SOAP::Data->name('v3:ApproverEmail','administrator@ascio-test-domain.com'),
	SOAP::Data->name('v3:CSR','-----BEGIN CERTIFICATE REQUEST-----MIIC2jCCAcICAQAwgZQxCzAJBgNVBAYTAkRFMRMwEQYDVQQIDApTb21lLVN0YXRlMQ8wDQYDVQQHDAZNdW5pY2gxEzARBgNVBAoMClRlc3RDb21hbnkxHjAcBgNVBAMMFWFzY2lvLXRlc3QtZG9tYWluLmNvbTEqMCgGCSqGSIb3DQEJARYbYWRtaW5AYXNjaW8tdGVzdC1kb21haW4uY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwQ9AgF9B381tELA3BsKkIwu4Ddg0hOSfyrtBnm895ELPYG4YcPYXmauTxPu0oD6WhudQh2tbnN/QTRsZpdVgahS6uz7065wUC6IrvlcuaCx+e08vp/1VOIUrKfyrxkZ1mjrv4FwQ38y+ITejL46JBbKbhqbeovQymA/DmHmKUylNY3eud6w/Dp+QOoa1jIZRdHv5ie+ranOx9aYl0WeuzrIOeIVI7UKVF9d1o5r2h60wThLPzky9hux5uisGYZsWjFKOJUFZxkX4riResOWmkFy9KUV82MLuScrSJ4cVfVPmhN3tEpOtYhkJVkS0PvR7LCdL4rOF0pqzL71m2ZoMdQIDAQABoAAwDQYJKoZIhvcNAQELBQADggEBAHcDTCtBQmGcIarD4NFmKt+Tw3l2p+tGRA8OiT7dSTvJ1TavZYdcobFKkBhp/3T9ko4wncBChp97YWNWtQT+hoIrOh85QIMHW14JeVFk8AiptI5pI+DPHnSwSq4XANwwrUI/3zAeRtV7bQmP9upebZ3POJ9Bl9oarge8J2SJ6yM5Dizq9wmGgQlhEG9HuuvJHFGjci86m8yqbqlS8JaIvO2dA4OpEM3cCcu7jY13RYN4DT06VAx2okMJmAyxvG9eu45MIB/NzeV4SrqsTNqCkrXKiC9/rAzhl7eP3XDRI6XZFRq7qmIAQoZJqWSyl1f4cq+rbLIJ9xE+yII+qt/CVbc=-----END CERTIFICATE REQUEST-----'),
	SOAP::Data->name('v3:Owner',$owner),
	SOAP::Data->name('v3:Admin',$admin),
	SOAP::Data->name('v3:Tech',$tech),
	SOAP::Data->name('v3:SanNames',SOAP::Data->value(
		SOAP::Data->name("string", "test-1.com"), 
		SOAP::Data->name("string", "test-2.com"), 
		SOAP::Data->name("string", "test-3.com"), 
		SOAP::Data->name("string", "test-4.com"))),
	SOAP::Data->name('v3:ValidationType','Dns')
);

#SslCertificateOrderRequest
$request =  \SOAP::Data->value(
	SOAP::Data->name('v3:Type','Register'),
	SOAP::Data->name('v3:Period',1),
	SOAP::Data->name('v3:TransactionComment','TransactionCommentTest'),
	SOAP::Data->name('v3:Comments','RegistrarTag'),
	SOAP::Data->name('v3:SslCertificate',$sslCertificate)
);
@query = (
	SOAP::Data->name("service:request" => $request)->attr({"xsi:type" => "v3:SslCertificateOrderRequest"})
);
$result = $soap->call($method => @query, $header);
unless ($result->fault) {
	$response = $result->valueof("//CreateOrderResponse/CreateOrderResult");
	print "ResultCode : $response->{'ResultCode'}\r\n";
	print "Message : $response->{'ResultMessage'}\r\n";
	print "Values: ", join(", ", $result->valueof("//CreateOrderResponse/CreateOrderResult/Errors/[>0]")), "\n";
	if ($response->{"ResultCode"} == 200) {
		$order = $result->valueof("//CreateOrderResponse/order");
		print "OrderId : $order->{'OrderId'}\r\n";
	}
}
else {
	print join ", ",
	$result->faultcode,
	$result->faultstring,
	$result->faultdetail;
}
WSDL for AWS v3
https://aws.demo.ascio.com/v3/aws.wsdl (OTE)
https://aws.ascio.com/v3/aws.wsdl (Live)
Please configure the IP-Whitelisting in the portal/demo-portal.