documentation/tutorials/mysql_setup.html

76 lines
24 KiB
HTML

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Setting up MySQL | Pterodactyl</title>
<meta name="generator" content="VuePress 1.9.10">
<link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon.png">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="mask-icon" href="/favicons/safari-pinned-tab.svg" color="#0e4688">
<link rel="manifest" href="/favicons/site.webmanifest">
<link rel="shortcut icon" href="/favicons/favicon.ico">
<meta name="description" content="Pterodactyl is an open-source game server management panel built with PHP, React, and Go. Designed with security in mind, Pterodactyl runs all game servers in isolated Docker containers while exposing a beautiful and intuitive UI to end users.">
<meta name="msapplication-config" content="/favicons/browserconfig.xml">
<meta name="theme-color" content="#0e4688">
<link rel="preload" href="/assets/css/0.styles.894cd3e9.css" as="style"><link rel="preload" href="/assets/js/app.b423fbf1.js" as="script"><link rel="preload" href="/assets/js/4.1c05de3a.js" as="script"><link rel="preload" href="/assets/js/2.638bc23b.js" as="script"><link rel="preload" href="/assets/js/69.e57354fd.js" as="script"><link rel="prefetch" href="/assets/js/1.364681bc.js"><link rel="prefetch" href="/assets/js/10.08b9c98e.js"><link rel="prefetch" href="/assets/js/11.e264572d.js"><link rel="prefetch" href="/assets/js/12.a4261b01.js"><link rel="prefetch" href="/assets/js/13.43a16fbd.js"><link rel="prefetch" href="/assets/js/14.ed610c4a.js"><link rel="prefetch" href="/assets/js/15.2fc81408.js"><link rel="prefetch" href="/assets/js/16.80d778f6.js"><link rel="prefetch" href="/assets/js/17.aa66495a.js"><link rel="prefetch" href="/assets/js/18.57b733fd.js"><link rel="prefetch" href="/assets/js/19.ec92bd63.js"><link rel="prefetch" href="/assets/js/20.a720acbc.js"><link rel="prefetch" href="/assets/js/21.d99db7fa.js"><link rel="prefetch" href="/assets/js/22.8f7ee701.js"><link rel="prefetch" href="/assets/js/23.4a3e5e0b.js"><link rel="prefetch" href="/assets/js/24.14d17171.js"><link rel="prefetch" href="/assets/js/25.b2ca157b.js"><link rel="prefetch" href="/assets/js/26.55d35d4f.js"><link rel="prefetch" href="/assets/js/27.005f34ff.js"><link rel="prefetch" href="/assets/js/28.a5eb93d2.js"><link rel="prefetch" href="/assets/js/29.26f1f5b0.js"><link rel="prefetch" href="/assets/js/30.d2985bea.js"><link rel="prefetch" href="/assets/js/31.acd28f7f.js"><link rel="prefetch" href="/assets/js/32.f259a483.js"><link rel="prefetch" href="/assets/js/33.7c770712.js"><link rel="prefetch" href="/assets/js/34.e93e5695.js"><link rel="prefetch" href="/assets/js/35.a04be06d.js"><link rel="prefetch" href="/assets/js/36.9e445fd9.js"><link rel="prefetch" href="/assets/js/37.c39b55c9.js"><link rel="prefetch" href="/assets/js/38.e108ac1d.js"><link rel="prefetch" href="/assets/js/39.867da03c.js"><link rel="prefetch" href="/assets/js/40.34edc760.js"><link rel="prefetch" href="/assets/js/41.368a213d.js"><link rel="prefetch" href="/assets/js/42.ea03a576.js"><link rel="prefetch" href="/assets/js/43.74132eec.js"><link rel="prefetch" href="/assets/js/44.f5ae5bdc.js"><link rel="prefetch" href="/assets/js/45.4bb149c0.js"><link rel="prefetch" href="/assets/js/46.c1ed9730.js"><link rel="prefetch" href="/assets/js/47.0f24220f.js"><link rel="prefetch" href="/assets/js/48.07ebc20a.js"><link rel="prefetch" href="/assets/js/49.342049a1.js"><link rel="prefetch" href="/assets/js/5.8c798c34.js"><link rel="prefetch" href="/assets/js/50.0b4f4dc4.js"><link rel="prefetch" href="/assets/js/51.f11b077a.js"><link rel="prefetch" href="/assets/js/52.8e320849.js"><link rel="prefetch" href="/assets/js/53.944dc699.js"><link rel="prefetch" href="/assets/js/54.d6bff428.js"><link rel="prefetch" href="/assets/js/55.a226dbb6.js"><link rel="prefetch" href="/assets/js/56.f682278e.js"><link rel="prefetch" href="/assets/js/57.3b5f3f55.js"><link rel="prefetch" href="/assets/js/58.8fe9d86f.js"><link rel="prefetch" href="/assets/js/59.d3aa2768.js"><link rel="prefetch" href="/assets/js/6.cd87a2b3.js"><link rel="prefetch" href="/assets/js/60.6a6972b5.js"><link rel="prefetch" href="/assets/js/61.78ebf38b.js"><link rel="prefetch" href="/assets/js/62.53e80a9f.js"><link rel="prefetch" href="/assets/js/63.dfe26c31.js"><link rel="prefetch" href="/assets/js/64.58b54b08.js"><link rel="prefetch" href="/assets/js/65.372034bb.js"><link rel="prefetch" href="/assets/js/66.6040c100.js"><link rel="prefetch" href="/assets/js/67.275f5b02.js"><link rel="prefetch" href="/assets/js/68.06aa0e75.js"><link rel="prefetch" href="/assets/js/7.f17059bf.js"><link rel="prefetch" href="/assets/js/70.d1a2a03a.js"><link rel="prefetch" href="/assets/js/71.023c6d55.js"><link rel="prefetch" href="/assets/js/8.758e7e8b.js"><link rel="prefetch" href="/assets/js/9.90f962cd.js">
<link rel="stylesheet" href="/assets/css/0.styles.894cd3e9.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div><div class="theme-container"><header class="nav"><div class="sidebar-button block md:hidden flex-no-shrink"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <div class="logo-container"><a href="/" class="home-link router-link-active"><img src="/logos/pterry.svg" class="logo"> <span class="site-name hidden md:inline can-hide">Pterodactyl</span></a></div> <div class="w-full"><div class="flex"><div class="search-box"><input aria-label="Search" placeholder="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links flex-no-shrink hidden md:flex"><div class="nav-item"><a href="/project/introduction.html" class="nav-link">Documentation
</a></div><div class="nav-item"><a href="/community/about.html" class="nav-link">Community Guides
</a></div><div class="nav-item"><a href="https://discord.gg/pterodactyl" target="_blank" rel="noopener noreferrer" class="nav-link external">
Get Help
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://dashflo.net/docs/api/pterodactyl/v1/" target="_blank" rel="noopener noreferrer" class="nav-link external">
API
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <div class="nav-item"><a href="https://github.com/pterodactyl/panel" target="_blank" rel="noopener noreferrer" class="nav-link">
GitHub
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div></nav></div></div></header> <div class="sidebar-mask"></div> <div class="sidebar"><nav class="nav-links flex-no-shrink block md:hidden"><div class="nav-item"><a href="/project/introduction.html" class="nav-link">Documentation
</a></div><div class="nav-item"><a href="/community/about.html" class="nav-link">Community Guides
</a></div><div class="nav-item"><a href="https://discord.gg/pterodactyl" target="_blank" rel="noopener noreferrer" class="nav-link external">
Get Help
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://dashflo.net/docs/api/pterodactyl/v1/" target="_blank" rel="noopener noreferrer" class="nav-link external">
API
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <div class="nav-item"><a href="https://github.com/pterodactyl/panel" target="_blank" rel="noopener noreferrer" class="nav-link">
GitHub
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div></nav> <ul class="sidebar-links"><li><div class="sidebar-group first"><p class="sidebar-heading"><span>Project Information</span> <!----> <!----></p> <ul class="sidebar-group-items"><li><a href="/project/introduction.html" class="sidebar-link">Introduction</a></li><li><a href="/project/about.html" class="sidebar-link">About</a></li><li><a href="/project/terms.html" class="sidebar-link">Terminology</a></li><li><a href="/project/community.html" class="sidebar-link">Community Standards</a></li></ul></div></li><li><div class="sidebar-group"><p class="sidebar-heading"><span>Panel</span> <!----> <div tabindex="0" class="version-select custom-select float-right"><div class="selected"><div class="inline-block">
1.11
<span class="rounded-full ml-2 text-green-dark">current</span></div> <span class="arrow"></span></div> <div class="items hidden"><div class="item"><div class="inline-block">
1.11
<span class="rounded-full ml-2 text-green-dark">current</span></div></div></div></div></p> <ul class="sidebar-group-items"><li><a href="/panel/1.0/getting_started.html" class="sidebar-link">Getting Started</a></li><li><a href="/panel/1.0/webserver_configuration.html" class="sidebar-link">Webserver Configuration</a></li><li><a href="/panel/1.0/additional_configuration.html" class="sidebar-link">Additional Configuration</a></li><li><a href="/panel/1.0/updating.html" class="sidebar-link">Updating the Panel</a></li><li><a href="/panel/1.0/troubleshooting.html" class="sidebar-link">Troubleshooting</a></li><li><a href="/panel/1.0/legacy_upgrade.html" class="sidebar-link">Legacy Upgrades</a></li></ul></div></li><li><div class="sidebar-group"><p class="sidebar-heading"><span>Wings</span> <!----> <div tabindex="0" class="version-select custom-select float-right"><div class="selected"><div class="inline-block">
1.11
<span class="rounded-full ml-2 text-green-dark">current</span></div> <span class="arrow"></span></div> <div class="items hidden"><div class="item"><div class="inline-block">
1.11
<span class="rounded-full ml-2 text-green-dark">current</span></div></div></div></div></p> <ul class="sidebar-group-items"><li><a href="/wings/1.0/installing.html" class="sidebar-link">Installing Wings</a></li><li><a href="/wings/1.0/upgrading.html" class="sidebar-link">Upgrading Wings</a></li><li><a href="/wings/1.0/migrating.html" class="sidebar-link">Migrating to Wings</a></li><li><a href="/wings/1.0/configuration.html" class="sidebar-link">Additional Configuration</a></li></ul></div></li><li><div class="sidebar-group"><p class="sidebar-heading open"><span>Tutorials</span> <!----> <!----></p> <ul class="sidebar-group-items"><li><a href="/tutorials/mysql_setup.html" aria-current="page" class="active sidebar-link">Setting up MySQL</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/tutorials/mysql_setup.html#creating-a-database-for-pterodactyl" class="sidebar-link">Creating a database for Pterodactyl</a></li><li class="sidebar-sub-header"><a href="/tutorials/mysql_setup.html#creating-a-database-host-for-nodes" class="sidebar-link">Creating a Database Host for Nodes</a></li></ul></li><li><a href="/tutorials/creating_ssl_certificates.html" class="sidebar-link">Creating SSL Certificates</a></li></ul></div></li><li><div class="sidebar-group"><p class="sidebar-heading"><span>Guides</span> <!----> <!----></p> <ul class="sidebar-group-items"><li><a href="/guides/mounts.html" class="sidebar-link">Using Mounts</a></li></ul></div></li></ul> </div> <div class="page"> <div class="content content__default"><h1 id="setting-up-mysql"><a href="#setting-up-mysql" class="header-anchor">#</a> Setting up MySQL</h1> <p></p><div class="table-of-contents"><ul><li><a href="#creating-a-database-for-pterodactyl">Creating a database for Pterodactyl</a><ul><li><a href="#logging-in">Logging In</a></li><li><a href="#creating-a-user">Creating a user</a></li><li><a href="#create-a-database">Create a database</a></li><li><a href="#assigning-permissions">Assigning permissions</a></li></ul></li><li><a href="#creating-a-database-host-for-nodes">Creating a Database Host for Nodes</a><ul><li><a href="#creating-a-user">Creating a user</a></li><li><a href="#assigning-permissions">Assigning permissions</a></li><li><a href="#allowing-external-database-access">Allowing external database access</a></li></ul></li></ul></div><p></p> <h2 id="creating-a-database-for-pterodactyl"><a href="#creating-a-database-for-pterodactyl" class="header-anchor">#</a> Creating a database for Pterodactyl</h2> <p>MySQL is a core component of Pterodactyl Panel but it can be confusing to setup and use if you've never done so before.
This is a very basic tutorial that skims just enough of the surface to set MySQL up and running with the panel.
If you're interested in learning more, there are some great tutorials available on the Internet.</p> <h3 id="logging-in"><a href="#logging-in" class="header-anchor">#</a> Logging In</h3> <p>The first step in this process is to login to the MySQL command line where we will be executing some statements to get
things setup. To do so, simply run the command below and provide the Root MySQL account's password that you setup when
installing MySQL. If you do not remember doing this, chances are you can just hit enter as no password is set.</p> <div class="language-sql extra-class"><pre class="language-sql"><code><span class="token comment"># If using MariaDB (v11.0.0+)</span>
mariadb <span class="token operator">-</span>u root <span class="token operator">-</span>p
<span class="token comment"># If using MySQL</span>
mysql <span class="token operator">-</span>u root <span class="token operator">-</span>p
</code></pre></div><h3 id="creating-a-user"><a href="#creating-a-user" class="header-anchor">#</a> Creating a user</h3> <p>For security sake, and due to changes in MySQL 5.7, you'll need to create a new user for the panel. To do so, we want
to first tell MySQL to use the mysql database, which stores such information.</p> <p>Next, we will create a user called <code>pterodactyl</code> and allow logins from localhost which prevents any external connections
to our database. You can also use <code>%</code> as a wildcard or enter a numeric IP. We will also set the account password
to <code>somePassword</code>.</p> <div class="language-sql extra-class"><pre class="language-sql"><code><span class="token comment"># Remember to change 'somePassword' below to be a unique password specific to this account.</span>
<span class="token keyword">CREATE</span> <span class="token keyword">USER</span> <span class="token string">'pterodactyl'</span><span class="token variable">@'127.0.0.1'</span> IDENTIFIED <span class="token keyword">BY</span> <span class="token string">'somePassword'</span><span class="token punctuation">;</span>
</code></pre></div><h3 id="create-a-database"><a href="#create-a-database" class="header-anchor">#</a> Create a database</h3> <p>Next, we need to create a database for the panel. In this tutorial we will be naming the database <code>panel</code>, but you can
substitute that for whatever name you wish.</p> <div class="language-sql extra-class"><pre class="language-sql"><code><span class="token keyword">CREATE</span> <span class="token keyword">DATABASE</span> panel<span class="token punctuation">;</span>
</code></pre></div><h3 id="assigning-permissions"><a href="#assigning-permissions" class="header-anchor">#</a> Assigning permissions</h3> <p>Finally, we need to tell MySQL that our pterodactyl user should have access to the panel database. To do this, simply
run the command below.</p> <div class="language-sql extra-class"><pre class="language-sql"><code><span class="token keyword">GRANT</span> <span class="token keyword">ALL</span> <span class="token keyword">PRIVILEGES</span> <span class="token keyword">ON</span> panel<span class="token punctuation">.</span><span class="token operator">*</span> <span class="token keyword">TO</span> <span class="token string">'pterodactyl'</span><span class="token variable">@'127.0.0.1'</span><span class="token punctuation">;</span>
</code></pre></div><h2 id="creating-a-database-host-for-nodes"><a href="#creating-a-database-host-for-nodes" class="header-anchor">#</a> Creating a Database Host for Nodes</h2> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>This section covers creating a MySQL user that has permission to create and modify users. This allows the Panel to create per-server databases on the given host.</p></div> <h3 id="creating-a-user-2"><a href="#creating-a-user-2" class="header-anchor">#</a> Creating a user</h3> <p>If your database is on a different host than the one where your Panel or Daemon is installed make sure to use the IP address of the machine the Panel is running on. If you use <code>127.0.0.1</code> and try to connect externally, you will receive a connection refused error.</p> <div class="language-sql extra-class"><pre class="language-sql"><code><span class="token comment"># You should change the username and password below to something unique.</span>
<span class="token keyword">CREATE</span> <span class="token keyword">USER</span> <span class="token string">'pterodactyluser'</span><span class="token variable">@'127.0.0.1'</span> IDENTIFIED <span class="token keyword">BY</span> <span class="token string">'somepassword'</span><span class="token punctuation">;</span>
</code></pre></div><h3 id="assigning-permissions-2"><a href="#assigning-permissions-2" class="header-anchor">#</a> Assigning permissions</h3> <p>The command below will give your newly created user the ability to create additional users, as well as create and destroy databases. As above, ensure <code>127.0.0.1</code> matches the IP address you used in the previous command.</p> <div class="language-sql extra-class"><pre class="language-sql"><code><span class="token keyword">GRANT</span> <span class="token keyword">ALL</span> <span class="token keyword">PRIVILEGES</span> <span class="token keyword">ON</span> <span class="token operator">*</span><span class="token punctuation">.</span><span class="token operator">*</span> <span class="token keyword">TO</span> <span class="token string">'pterodactyluser'</span><span class="token variable">@'127.0.0.1'</span> <span class="token keyword">WITH</span> <span class="token keyword">GRANT</span> <span class="token keyword">OPTION</span><span class="token punctuation">;</span>
</code></pre></div><h3 id="allowing-external-database-access"><a href="#allowing-external-database-access" class="header-anchor">#</a> Allowing external database access</h3> <p>Chances are you'll need to allow external access to this MySQL instance in order to allow servers to connect to it. To do this, open <code>my.cnf</code>, which varies in location depending on your OS and how MySQL was installed. You can type <code>find /etc -iname my.cnf</code> to locate it.</p> <p>Open <code>my.cnf</code>, add text below to the bottom of the file and save it:</p> <div class="language- extra-class"><pre class="language-text"><code>[mysqld]
bind-address=0.0.0.0
</code></pre></div><p>Restart MySQL/MariaDB to apply these changes. This will override the default MySQL configuration, which by default will only accept requests from localhost. Updating this will allow connections on all interfaces, and thus, external connections. Make sure to allow the MySQL port (default 3306) in your firewall.</p> <p>If your Database and Wings are on the same machine and won't need external access, you can also use the <code>docker0</code> interface IP address rather than <code>127.0.0.1</code>. This IP address can be found by running <code>ip addr | grep docker0</code>, and it likely looks like <code>172.x.x.x</code>.</p> <p>Starting with MySQL 8.0.13 / MariaDB 10.11 or above, <code>bind_address</code> now also accepts a comma-separated list of interfaces to give more control over what interfaces it will listen on and which not.</p></div> <div class="page-edit"><div class="edit-link"><a href="https://github.com/pterodactyl/documentation/edit/master/tutorials/mysql_setup.md" target="_blank" rel="noopener noreferrer">Help us improve this page.</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <!----></div> <div class="page-nav"><p class="inner"></p> <div class="prev"><span>
<a href="/project/community.html">Community Standards</a></span></div> <div class="next"><span><a href="/tutorials/creating_ssl_certificates.html">Creating SSL Certificates</a>
</span></div></div> </div></div></div><div class="global-ui"></div></div>
<script src="/assets/js/app.b423fbf1.js" defer></script><script src="/assets/js/4.1c05de3a.js" defer></script><script src="/assets/js/2.638bc23b.js" defer></script><script src="/assets/js/69.e57354fd.js" defer></script>
</body>
</html>