405 lines
12 KiB
HTML
405 lines
12 KiB
HTML
|LF_STANDARD|
|
|
|?TREE=» <a class=tree href="/CMD_SHOW_DOMAIN?domain=`DOMAIN`">`DOMAIN`</a> » <a class=tree href="/CMD_SSL?DOMAIN=`DOMAIN`">`LANG_SSL`</a>|
|
|
|?HELP_SECTION=`USER_HELPER`/ssl.html|
|
|
|HTM_USER_TOP|
|
|
|
|
<script language="javascript">
|
|
function copyCertificate(text)
|
|
{
|
|
text.focus();
|
|
text.select();
|
|
if (document.all)
|
|
{
|
|
therange = text.createTextRange();
|
|
therange.execCommand("Copy");
|
|
alert('|LANG_CERT_COPIED|');
|
|
}
|
|
}
|
|
|
|
function pasteCertificate(text)
|
|
{
|
|
text.focus();
|
|
text.select();
|
|
|
|
if (document.all)
|
|
{
|
|
document.execCommand("Paste");
|
|
|
|
with (document.info)
|
|
for (var i=0; i < elements.length; i++)
|
|
if (elements[i].type == 'radio')
|
|
if ( (elements[i].name == "type") && (elements[i].value == "paste") )
|
|
{
|
|
elements[i].checked = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
function setRequest(onoff)
|
|
{
|
|
if (document.info)
|
|
{
|
|
with (document.info)
|
|
{
|
|
for (var i=0; i < elements.length; i++)
|
|
if (elements[i].type == 'radio')
|
|
if ( elements[i].name == "request" )
|
|
{
|
|
if (onoff == 'on')
|
|
elements[i].disabled = false;
|
|
else
|
|
elements[i].disabled = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function setPaste(onoff)
|
|
{
|
|
var paste = document.getElementById('paste_visibility');
|
|
if (onoff == 'on')
|
|
paste.style.display = '';
|
|
else
|
|
paste.style.display = 'none';
|
|
}
|
|
|
|
function wildcard_checked()
|
|
{
|
|
|*if WILDCARD="1"|
|
|
return document.getElementById('wildcard').checked;
|
|
|*else|
|
|
return false;
|
|
|*endif|
|
|
}
|
|
|
|
function wildcard_changed()
|
|
{
|
|
var le_o_id = document.getElementById('letsencrypt_options');
|
|
var le_wc_o_id = document.getElementById('letsencrypt_wc_options');
|
|
|
|
if (wildcard_checked())
|
|
{
|
|
le_o_id.style.display = 'none';
|
|
le_wc_o_id.style.display = '';
|
|
}
|
|
else
|
|
{
|
|
le_o_id.style.display = '';
|
|
le_wc_o_id.style.display = 'none';
|
|
}
|
|
|
|
count_letsencrypt_options();
|
|
}
|
|
|
|
function set_letsencrypt_other_options(disp)
|
|
{
|
|
document.getElementById('country_visibility').style.display = disp;
|
|
document.getElementById('province_visibility').style.display = disp;
|
|
document.getElementById('city_visibility').style.display = disp;
|
|
document.getElementById('company_visibility').style.display = disp;
|
|
document.getElementById('division_visibility').style.display = disp;
|
|
document.getElementById('email_visibility').style.display = disp;
|
|
|
|
document.getElementById('wildcard_span').style.display = (disp=='none')?'':'none';
|
|
}
|
|
|
|
function set_letsencrypt_options()
|
|
{
|
|
|*if LETSENCRYPT="1"|
|
|
if (document.info)
|
|
{
|
|
var radios = document.getElementsByName('request');
|
|
for (var i=0; i<radios.length; i++)
|
|
if (radios[i].checked)
|
|
{
|
|
var vis_element = document.getElementById('letsencrypt_visibility');
|
|
if (radios[i].value == 'letsencrypt')
|
|
{
|
|
vis_element.style.display = '';
|
|
set_letsencrypt_other_options('none');
|
|
}
|
|
else
|
|
{
|
|
vis_element.style.display = 'none';
|
|
set_letsencrypt_other_options('');
|
|
}
|
|
break;
|
|
}
|
|
|
|
wildcard_changed();
|
|
}
|
|
|*endif|
|
|
}
|
|
|*if LETSENCRYPT="1"|
|
|
function count_letsencrypt_options()
|
|
{
|
|
with (document.info)
|
|
{
|
|
var select=wildcard_checked()?'le_wc_select':'le_select';
|
|
var le_count=0;
|
|
var has_main_domain = false;
|
|
var has_wild_main_domain = false;
|
|
var i=0;
|
|
|
|
var le_warning='';
|
|
|
|
for (i=0; i < elements.length; i++)
|
|
if (elements[i].type == 'checkbox' && !elements[i].disabled)
|
|
if (elements[i].name.substring(0, select.length) == select)
|
|
{
|
|
if (elements[i].checked)
|
|
{
|
|
le_count++;
|
|
|
|
if (elements[i].value == '|domain|')
|
|
has_main_domain = true;
|
|
|
|
if (wildcard_checked())
|
|
{
|
|
if (elements[i].value == '*.|domain|')
|
|
has_wild_main_domain = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
var le_count_element = document.getElementById('le_selected_count');
|
|
le_count_element.innerHTML = le_count;
|
|
|
|
if (le_count == 0)
|
|
le_warning += '|LANG_LE_MORE_THAN_ZERO|<br>';
|
|
|
|
if (le_count > |LETSENCRYPT_MAX_REQUESTS|)
|
|
le_warning += '|LANG_LE_CANNOT_EXCEED| |LETSENCRYPT_MAX_REQUESTS| |LANG_LE_REQUESTS_PER_WEEK|<br>';
|
|
|
|
/*
|
|
if (!has_main_domain)
|
|
le_warning += '|LANG_LE_MUST_INCLUDE_MAIN_DOMAIN| |domain|.<br>';
|
|
|
|
if (wildcard_checked() && !has_wild_main_domain)
|
|
le_warning += '|LANG_LE_MUST_INCLUDE_MAIN_DOMAIN| *.|domain|.<br>';
|
|
*/
|
|
|
|
warning_element = document.getElementById('le_options_warning');
|
|
warning_element.innerHTML = le_warning;
|
|
}
|
|
}
|
|
function init_letsencrypt_options()
|
|
{
|
|
count_letsencrypt_options();
|
|
|
|
var select_url_element = document.getElementById('le_select_url_id');
|
|
select_url_element.href='javascript:void(0);';
|
|
select_url_element.onclick=function() { selectAll('le_select'); count_letsencrypt_options(); };
|
|
|
|
var select_wc_url_element = document.getElementById('le_wc_select_url_id');
|
|
select_wc_url_element.href='javascript:void(0);';
|
|
select_wc_url_element.onclick=function() { selectAll('le_wc_select'); count_letsencrypt_options(); };
|
|
|
|
with (document.info)
|
|
{
|
|
var select='le_select';
|
|
var i=0;
|
|
for (i=0; i < elements.length; i++)
|
|
if (elements[i].type == 'checkbox' && !elements[i].disabled)
|
|
if (elements[i].name.substring(0, select.length) == select)
|
|
elements[i].onclick = function() { count_letsencrypt_options(); };
|
|
|
|
var select='le_wc_select';
|
|
for (i=0; i < elements.length; i++)
|
|
if (elements[i].type == 'checkbox' && !elements[i].disabled)
|
|
if (elements[i].name.substring(0, select.length) == select)
|
|
elements[i].onclick = function() { count_letsencrypt_options(); };
|
|
}
|
|
}
|
|
|*endif|
|
|
|
|
</script>
|
|
<b>|RESULT|</b><br>
|
|
|
|
|*if SSL_ON="yes"|
|
|
|LANG_SSL_ENABLED|
|
|
|*else|
|
|
|LANG_SSL_DISABLED|
|
|
|*endif|
|
|
<a href="/CMD_ADDITIONAL_DOMAINS?action=view&domain=|domain|">|LANG_SSL_HERE|</a>.
|
|
|
|
|
|
<table class=list cellpadding=3 cellspacing=1>
|
|
<tr><td class=listtitle colspan=3>|LANG_SSL_CERTS|</td></tr>
|
|
|
|
<form name=info action="CMD_SSL" method="post">
|
|
<input type=hidden name=domain value="|DOMAIN|">
|
|
<input type=hidden name=action value="save">
|
|
<input type=hidden name=background value="|BACKGROUND_DEFAULT|">
|
|
|
|
<tr><td class=listtitle align=center><input type=radio name=type value="server" |SERVERCHECKED| onClick="setRequest('off'); setPaste('off');"></td>
|
|
<td class=listtitle colspan=2>
|
|
|LANG_USE_SERVERS|
|
|
</td>
|
|
</tr>
|
|
<tr><td class=list> </td>
|
|
<td class=list colspan=2>
|
|
|LANG_USE_SHARED|
|
|
|*if CAN_AUTO_SSL_CERT="1"|
|
|
<br>
|
|
|LANG_DA_WILL_MANAGE_CERTS|
|
|
|*endif|
|
|
</td>
|
|
</tr>
|
|
|
|
<tr><td class=listtitle align=center><input type=radio name=type value="create" onClick="setRequest('on'); setPaste('off');"></td>
|
|
<td class=listtitle colspan=2>
|
|
<input type=radio name=request value="no" checked disabled onClick="set_letsencrypt_options();">|LANG_CREATE_SELF_SIGNED|<br>
|
|
<input type=radio name=request value="yes" disabled onClick="set_letsencrypt_options();">|LANG_CREATE_CSR|
|
|
|*if LETSENCRYPT="1"|
|
|
<br><input type=radio name=request value="letsencrypt" disabled onClick="set_letsencrypt_options();">|LANG_FREE_LETS_ENCRYPT| <a class='listtitle' target=_blank href="https://letsencrypt.org/">Let's Encrypt</a></td>
|
|
|*endif|
|
|
</td>
|
|
</tr>
|
|
<tr id=country_visibility><td class=list> </td><td class=list>|LANG_COUNTRY|</td><td class=list><input type=input name=country size=2 maxlength=2 value="|COUNTRY|"></td></tr>
|
|
<tr id=province_visibility><td class=list> </td><td class=list>|LANG_STATE|</td><td class=list><input type=input name=province value="|PROVINCE|"></td></tr>
|
|
<tr id=city_visibility><td class=list> </td><td class=list>|LANG_CITY|</td><td class=list><input type=input name=city value="|CITY|"></td></tr>
|
|
<tr id=company_visibility><td class=list> </td><td class=list>|LANG_COMPANY|</td><td class=list><input type=input name=company value="|COMPANY|"></td></tr>
|
|
<tr id=division_visibility><td class=list> </td><td class=list>|LANG_COMPANY_DIV|</td><td class=list><input type=input name=division value="|DIVISION|"></td></tr>
|
|
<tr><td class=list> </td><td class=list>|LANG_COMMON_NAME|</td>
|
|
<td class=list>
|
|
<input type=input name=name value="|WWW_DOMAIN|">
|
|
|*if WILDCARD="1"|
|
|
<span id='wildcard_span' style='padding-left: 10px; display: none;'>
|
|
<input type='checkbox' id='wildcard' name='wildcard' value='yes' onchange='wildcard_changed();' |WILDCARD_CHECKED|> Wildcard
|
|
</span>
|
|
|*endif|
|
|
</td>
|
|
</tr>
|
|
<tr id=email_visibility><td class=list> </td><td class=list>|LANG_EMAIL|</td><td class=list><input type=input name=email value="|EMAIL|"></td></tr>
|
|
<tr><td class=list> </td><td class=list>|LANG_KEYSIZE|</td><td class=list>|KEYSIZE|</td></tr>
|
|
<tr><td class=list> </td><td class=list>|LANG_CERT_TYPE|</td><td class=list><select class=selectclass name=encryption><option value="sha256" selected>SHA256</option></select></td></tr>
|
|
|*if LETSENCRYPT="1"|
|
|
<tr id=letsencrypt_visibility style="display: none;">
|
|
<td class=list> </td>
|
|
<td class=list colspan=2>
|
|
<h2>|LANG_LE_SELECTED|: <span id=le_selected_count>X</span> |LANG_LE_MAX|: |LETSENCRYPT_MAX_REQUESTS|</h2><span id='le_options_warning' class='warning'></span>
|
|
<div style="overflow: auto; height: 160px; width: 100%;">
|
|
<div id='letsencrypt_options'>
|
|
|LETSENCRYPT_OPTIONS|
|
|
</div>
|
|
<div id='letsencrypt_wc_options' style='display: none;'>
|
|
|LETSENCRYPT_WC_OPTIONS|
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<script language="Javascript">
|
|
init_letsencrypt_options();
|
|
</script>
|
|
|*endif|
|
|
|
|
<tr><td class=listtitle align=center><input type=radio name=type value="paste" |PASTECHECKED| onClick="setRequest('off'); setPaste('on');"></td><td class=listtitle colspan=2>|LANG_PASTE|</td></tr>
|
|
<tr id='paste_visibility' |*if PASTECHECKED!="checked"|style="display: none"|*endif|>
|
|
<td class=list> </td>
|
|
<td class=list align=center colspan=2>
|
|
<textarea class="code_edit ssl_text" name=certificate rows=16>|KEY||CERTIFICATE|</textarea><br>
|
|
<input type=button value="|LANG_PASTE_FROM|" onClick="pasteCertificate(document.info.certificate)">
|
|
<input type=button value="|LANG_COPY_TO|" onClick="copyCertificate(document.info.certificate)"> |LANG_IE_ONLY|
|
|
|*if LETSENCRYPT_RENEWAL_DAYS!=""|
|
|
<div style='padding: 20px; padding-bottom: 5px; font-weight: bold;'>|LANG_LETSENCRYPT_IN_USE_AUTO_RENEWAL| |LETSENCRYPT_RENEWAL_DAYS| |LANG_LETSENCRYPT_DAYS|.</div>
|
|
<div style='padding-bottom: 20px'><input type=submit name='disable_letsencrypt_autorenew' value="|LANG_LE_DISABLE_AUTORENEW|"></div>
|
|
|*endif|
|
|
|
|
</td>
|
|
</tr>
|
|
|*if CERTIFICATE_HOSTS!=""|
|
|
<tr>
|
|
<td class=list> </td>
|
|
<td class=list>|LANG_CERTIFICATE_HOSTS|</td>
|
|
<td class=listwrap>|CERTIFICATE_HOSTS|</td>
|
|
</tr>
|
|
<tr>
|
|
<td class=list> </td>
|
|
<td class=list>|LANG_CERTIFICATE_EXPIRY|</td>
|
|
<td class=list>|NOT_AFTER|</td>
|
|
</tr>
|
|
|*endif|
|
|
|
|
<tr><td class=listtitle colspan=3 align=right>
|
|
<input type=submit name=submit value="|LANG_SAVE|">
|
|
</td></tr>
|
|
</form>
|
|
|
|
</table>
|
|
<br>
|
|
<a href="/CMD_SSL?DOMAIN=|DOMAIN|&view=cacert">|LANG_CLICK_HERE|<br><br>
|
|
|
|
|
|
<table class=mb15 cellpadding=3 cellspacing=1>
|
|
<form name=https action="/CMD_DOMAIN" method="post">
|
|
<input type=hidden name=action value="private_html">
|
|
<input type=hidden name=domain value="|DOMAIN|">
|
|
<tr><td><input type="checkbox" name="force_ssl" value="yes" |FORCE_SSL_CHECKED|></td>
|
|
<td>|LANG_FORCE_SSL_REDIRECT|</td>
|
|
<td><input type=submit value='|LANG_SAVE|'></td>
|
|
</tr>
|
|
</form>
|
|
</table>
|
|
|
|
|LANG_NOTE|
|
|
|
|
|?SERVER_CERT_AND_AUTO_SSL=true|
|
|
|*if CAN_AUTO_SSL_CERT!="1"|
|
|
|?SERVER_CERT_AND_AUTO_SSL=false|
|
|
|*endif|
|
|
|*if SERVERCHECKED!="checked"|
|
|
|?SERVER_CERT_AND_AUTO_SSL=false|
|
|
|*endif|
|
|
|*if SERVER_CERT_AND_AUTO_SSL="true"|
|
|
<br><br>
|
|
<hr>
|
|
<b>|LANG_AUTO_SSL_CERT_INFO|</b>
|
|
|AUTO_SSL_CERT_TABLE|
|
|
|AUTO_SSL_RETRY_TABLE|
|
|
|AUTO_SSL_SNI_TABLE|
|
|
|
|
<br>
|
|
<table class='list_alt' cellpadding=3 cellspacing=1>
|
|
<form action='?' method=POST>
|
|
<input type='hidden' name='action' value='retries'>
|
|
<input type='hidden' name='domain' value='|DOMAIN|'>
|
|
<input type='hidden' name='select0' value='|DOMAIN|'>
|
|
<tr>
|
|
<th colspan=2 align=left>|LANG_MANUAL_TRIGGER|</th>
|
|
</tr>
|
|
<tr>
|
|
<td colspan=2>
|
|
|LANG_MANUAL_TRIGGER_INFO|
|
|
<ul>
|
|
<li>|LANG_NO_SUBS_WHEN_WILDCARD|</li>
|
|
<li>|LANG_WILDCARD_ONLY_LOCAL_DNS|</li>
|
|
<li>|LANG_WILDCARD_HTTP_FALLBACK|</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td align=center><input type='checkbox' name='wildcard' value='yes' checked></td>
|
|
<td>|LANG_WILDCARD|: *.|DOMAIN|, |DOMAIN|</td>
|
|
</tr>
|
|
<tr>
|
|
<td align=center><input type='checkbox' name='subdomains' value='yes'></td>
|
|
<td>|LANG_SUBDOMAINS|</td>
|
|
</tr>
|
|
<tr>
|
|
<td align=center><input type='checkbox' name='pointers' value='yes'></td>
|
|
<td>|LANG_DOMAIN_PTRS|</td>
|
|
</tr>
|
|
<tr>
|
|
<th colspan=2 align=right>
|
|
<input type='submit' value='|LANG_TRIGGER_RETRY|' name='retry_now' title='|LANG_CERT_REQUEST_WILL_BE_CREATED|: |DOMAIN|'>
|
|
</th>
|
|
</tr>
|
|
</form>
|
|
</table>
|
|
|*else|
|
|
<p>|LANG_NO_AUTO_SSL|</p>
|
|
|*endif|
|
|
|
|
|HTM_USER_BOTTOM|
|