# cPanel API 2 Functions - SSL::gencsr 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 certificate signing request (CSR). - The system saves the new CSR to the cPanel account's certificate directory. - Certificate Authorities may have additional requirements for CSR information. - Use the [`SSL::listcsrs`](/cpanel-api-2/cpanel-api-2-modules-ssl/cpanel-api-2-functions-ssl-listcsrs/) function to retrieve the new CSR's information. Warning: We **strongly** recommend that you use the following [UAPI](/cpanel/introduction/) function instead of this function: - [`SSL::generate_csr`](https://api.docs.cpanel.net/openapi/cpanel/operation/generate_csr/) — This function generates a certificate signing request (CSR). Note: You **must** install a key for the host **before** you call this function. 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=gencsr&city="Houston"&company="cPanel"&companydivision="Documentation"&country="US"&email="user@example.com"&host="example.com"&state="Texas"&password="12345luggage" ``` 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 new CSR for example.com. $generate_new_csr = $cpanel->api2( 'SSL', 'gencsr', array( 'city' => 'Houston', 'company => 'cPanel', 'companydivision' => 'Documentation', 'country' => 'US', 'email' => 'user@example.com', 'host' => 'example.com', 'state' => 'Texas', 'password' => '12345luggage', ) ); ``` 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 new CSR for example.com. my $generate_new_csr = $cpliveapi->api2( 'SSL', 'gencsr', { 'city' => 'Houston', 'company => 'cPanel', 'companydivision' => 'Documentation', 'country' => 'US', 'email' => 'user@example.com', 'host' => 'example.com', 'state' => 'Texas', 'password' => '12345luggage', } ); ``` 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 gencsr city=Houston company=cPanel companydivision=Documentation country=US email=username%40example.com host=example.com state=Texas password=12345luggage ``` 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": "gencsr", "data": [ { "output": "Certificate Signing Request 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 CSR owner's city. td The name of the city in which the CSR owner resides. td code Houston tr td code company td em string td p strong Required p The CSR owner's company name. td The name of the CSR owner's company. td code cPanel tr td code companydivision td em string td p The CSR owner's division or department within the company. p This parameter defaults to an empty string. td The name of the CSR owner's division or department. td code Documentation tr td code country td em string td p strong Required p The CSR owner's country. td p The country's a two-letter abbreviation . You strong must use the strong abbreviation . strong Do not use the country's full name. td code US tr td code email td em string td p The CSR 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 CSR's hostname. td p A valid domain or subdomain name. p br td code example.com tr td code state td em string td p strong Required p The CSR owner's state. td p The state's full name. You strong must use the full name. strong Do not use the state's abbreviation. td code Texas tr td code password td em string td p The CSR password. p This parameter defaults to an empty string. td A secure password. td code 12345luggage ## Returns table colgroup col col col col col 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 A message of success or a reason for failure. td ul li code Certificate Signing Request 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