type=page
status=published
title=delete-ssl
next=delete-system-property.html
prev=delete-resource-ref.html
~~~~~~

delete-ssl
==========

[[delete-ssl-1]][[GSRFM00109]][[delete-ssl]]

delete-ssl
----------

Deletes the SSL element in the selected HTTP listener, IIOP listener, or
IIOP service

[[sthref975]]

=== Synopsis

[source]
----
asadmin [asadmin-options] delete-ssl [--help]
[--target target]
--type listener_or_service_type
listener_id
----

[[sthref976]]

=== Description

The `delete-ssl` subcommand deletes the SSL element in the selected HTTP
listener, IIOP listener, or IIOP service.

The listener_id is not required if the `--type` is `iiop-service`.

This subcommand is supported in remote mode only.

[[sthref977]]

=== Options

If an option has a short option name, then the short option precedes the
long option name. Short options have one dash whereas long options have
two dashes.

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--target`::
  Specifies the target on which you are configuring the ssl element. The
  following values are valid:

  `server`;;
    Specifies the server in which the iiop-service or HTTP/IIOP listener
    is to be unconfigured for SSL.
  config;;
    Specifies the configuration that contains the HTTP/IIOP listener or
    iiop-service for which SSL is to be unconfigured.
  cluster;;
    Specifies the cluster in which the HTTP/IIOP listener or
    iiop-service is to be unconfigured for SSL. All the server instances
    in the cluster will get SSL unconfigured for the respective listener
    or iiop-service.
  instance;;
    Specifies the instance in which the HTTP/IIOP listener or
    iiop-service is to be unconfigured for SSL.

`--type`::
  The type of service or listener for which the SSL is deleted. The type
  must be one of the following types:

  * `http-listener`
  * `iiop-listener`
  * `iiop-service`

[[sthref978]]

=== Operands

listener_id::
  The ID of the listener from which the SSL element is to be deleted. +
  The listener_id operand is not required if the `--type` is `iiop-service`.

[[sthref979]]

=== Examples

[[GSRFM579]][[sthref980]]

==== Example 1   Deleting an SSL element from an HTTP listener

The following example shows how to delete an SSL element from an HTTP
listener named `http-listener-1`.

[source]
----
asadmin> delete-ssl
--type http-listener http-listener-1
Command delete-ssl executed successfully.
----

[[sthref981]]

=== Exit Status

0::
  command executed successfully
1::
  error in executing the command

[[sthref982]]

=== See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:create-ssl.html#create-ssl-1[`create-ssl`(1)]


