# cPanel API 2 Functions - SSL::gencrt Warning: The cPanel API 2 system is deprecated. We **strongly** recommend that you use [UAPI](/cpanel/introduction) instead of cPanel API 2. ## Description This function generates a self-signed certificate. Warning: We **strongly** recommend that you use the following [UAPI](/cpanel/introduction/) function instead of this function: - [`SSL::generate_cert`](https://api.docs.cpanel.net/openapi/cpanel/operation/generate_cert/) — This function generates a self-signed SSL certificate. Note: Use the [`SSL::listcrts`](/cpanel-api-2/cpanel-api-2-modules-ssl/cpanel-api-2-functions-ssl-listcrts/) function to retrieve the new certificate's information. Important: When you disable the *Calendars and Contacts*, *Receive Mail*, *Web Disk*, *Webmail*, **and** *Web Server* [roles](https://docs.cpanel.net/knowledge-base/general-systems-administration/how-to-use-server-profiles/#roles), the system **disables** this function. ## Examples ### WHM API (JSON) ```undefined syntaxhighlighter-pre https://hostname.example.com:2087/cpsess###########/json-api/cpanel?cpanel_jsonapi_user=user&cpanel_jsonapi_apiversion=2&cpanel_jsonapi_module=SSL&cpanel_jsonapi_func=gencrt&city="Houston"&company="cPanel"&companydivision="Documentation"&country="US"&email="user@example.com"&host="example.com"&state="TX" ``` Note: For more information, read our [Calls from the WHM API](/whm/use-whm-api-to-call-cpanel-api-and-uapi) documentation. ### LiveAPI PHP Class ```undefined syntaxhighlighter-pre $cpanel = new CPANEL(); // Connect to cPanel - only do this once. // Generate a self-signed certificate for example.com. $generate_new_certificate = $cpanel->api2( 'SSL', 'gencrt', array( 'city' => 'Houston', 'company => 'cPanel', 'companydivision' => 'Documentation', 'country' => 'US', 'email' => 'user@example.com', 'host' => 'example.com', 'state' => 'TX', ) ); ``` Note: For more information, read our [Guide to the LiveAPI System](/guides/guide-to-the-liveapi-system/#guide-to-the-liveapi-system). ### LiveAPI Perl Module ```undefined syntaxhighlighter-pre my $cpliveapi = Cpanel::LiveAPI->new(); # Connect to cPanel - only do this once. # Generate a self-signed certificate for example.com. my $generate_new_certificate = $cpliveapi->api2( 'SSL', 'gencrt', { 'city' => 'Houston', 'company => 'cPanel', 'companydivision' => 'Documentation', 'country' => 'US', 'email' => 'user@example.com', 'host' => 'example.com', 'state' => 'TX', } ); ``` Note: For more information, read our [Guide to the LiveAPI System](/guides/guide-to-the-liveapi-system). ### cPanel Tag System (deprecated) Warnings: - cPanel tags are **deprecated**. We **strongly** recommend that you **only** use the [LiveAPI](/guides/guide-to-the-liveapi-system) system to call the cPanel APIs. Examples are **only** present in order to help developers move from the old cPanel tag system to our [LiveAPI](/guides/guide-to-the-liveapi-system). - cPanel API 2 calls that use cPanel tags vary in code syntax and in their output. - For more information, read our [Deprecated cPanel Tag Usage](/cpanel-api-2/cpanel-api-2-deprecate-cpanel-tag-usage/) documentation. ### Command Line ```undefined syntaxhighlighter-pre cpapi2 --user=username SSL gencrt city=Houston company=cPanel companydivision=Documentation country=US email=username%40example.com host=example.com state=TX ``` div Notes: - You **must** URI-encode values. - `username` represents your account-level username. - You **must** include the `--user=username` option. - For more information and additional output options, read our [Guide to cPanel API 2](/cpanel-api-2/) documentation or run the `cpapi2 --help` command. - If you run CloudLinux™, you **must** use the full path of the `cpapi2` command: ```undefined syntaxhighlighter-pre /usr/local/cpanel/bin/cpapi2 ``` ### Output (JSON) ```undefined syntaxhighlighter-pre { "cpanelresult": { "apiversion": 2, "func": "gencrt", "data": [ { "output": "Certificate generated!", "result": 1 } ], "event": { "result": 1 }, "module": "SSL" } } ``` Note: Use cPanel's *[API Shell](https://docs.cpanel.net/cpanel/advanced/api-shell-for-cpanel)* interface (*cPanel >> Home >> Advanced >> API Shell*) to directly test cPanel API calls. ## Parameters table thead tr th strong Parameter th strong Type th strong Description th strong Possible values th strong Example tbody tr td code city td em string td p strong Required p The certificate owner's city. td The name of the city in which the certificate owner resides. td code Houston tr td code company td em string td p strong Required p The certificate owner's company name. td The name of the certificate owner's company. td code cPanel tr td code companydivision td em string td p The certificate owner's division or department within the company. p This parameter defaults to an empty string. td The name of the certificate owner's division or department. td code Documentation tr td code country td em string td p strong Required p The certificate owner's country. td The country's a two-letter abbreviation . td code US tr td code email td em string td p The certificate owner's email address. p This parameter defaults to an empty string. td A valid email address. td code user@example.com tr td code host td em string td p strong Required p The certificate's hostname. td p A valid domain or subdomain name. td code example.com tr td code state td em string td p strong Required p The certificate owner's state. td The state's a two-letter abbreviation . td code TX ## Returns table thead tr th strong Return th strong Type th strong Description th strong Possible values th strong Example tbody tr td code output td em string td p A message of success or a reason for failure. td ul li code Certificate generated! li A string that describes the error. td code This is an error message. tr td code result td em Boolean td p Whether the function succeeded. td ul li code 1 — The function succeeded. li code 0 — The function failed. td code 1