Удостоверьтесь, что к странице только получают доступ через SSL

Попробуйте команду docker:

docker run -it --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /d/checmd3/che/assembly/assembly-main/target/eclipse-che-7.0.0-beta-2.0/eclipse-che-7.0.0-beta-2.0:/che \
-e CHE_ASSEMBLY='/d/checmd3/che/assembly/assembly-main/target/eclipse-che-7.0.0-beta-2.0/eclipse-che-7.0.0-beta-2.0' \
-v /d/checmd3/che/tmp:/data \
eclipse/che start

НАД РАБОТАЕТ КОМАНДА

INFO: (che init):   CHE_VERSION=7.0.0-beta-2.0
INFO: (che init):   CHE_CONFIG=/d/checmd3/che/tmp
INFO: (che init):   CHE_INSTANCE=/d/checmd3/che/tmp/instance
INFO: (che config): Generating che configuration...
INFO: (che config): Customizing docker-compose for running in a container
INFO: (che start): Preflight checks
         mem (1.5 GiB):           [OK]
         disk (100 MB):           [OK]
         port 8080 (http):        [AVAILABLE]
         conn (browser => ws):    [OK]
         conn (server => ws):     [OK]

INFO: (che start): Starting containers...
INFO: (che start): Services booting...
INFO: (che start): Server logs at "docker logs -f che"
INFO: (che start): Booted and reachable
INFO: (che start): Ver: 7.0.0-beta-2.0
INFO: (che start): Use: http://172.26.10.112:8080
INFO: (che start): API: http://172.26.10.112:8080/swagger
6
задан Collin Estes 26 March 2009 в 14:38
поделиться

6 ответов

Это обычно обрабатывалось бы с помощью конфигурации IIS или с фильтром ISAPI, но если Вы хотите сделать это в коде приложения, Вы могли бы поместить что-то вроде этого в событие Page_Init Вашей основной страницы...

If Not Request.IsSecure
    Response.Redirect(Request.Url.AbsoluteUri.Replace("http://", "https://"))
End If
9
ответ дан 8 December 2019 в 17:27
поделиться

Я просто перенаправил бы все http URL к https с отдельной страницей или использовал бы, "требуют безопасного канала" опция на Вашей конфигурации IIS, которая отобразит ошибку, если кто-то попытается получить доступ к non-https странице.

Вот сайт с руководством по перенаправлению ошибочной страницы к https URL Вашего сайта.

2
ответ дан 8 December 2019 в 17:27
поделиться

Я сделал это с HTTPModule так, чтобы Вы не волновались о помещении кода на каждой основной странице (если у Вас есть больше чем один). Эта версия также выключает перенаправление для localhost, таким образом, у Вас не должно быть SSL на Вашей собственной машине. В основном Вы делаете новый HTTP-модуль как это:

Public Class RedirectToHttpsModule
    Implements IHttpModule

    Public Sub Dispose() Implements IHttpModule.Dispose

    End Sub

    Public Sub Init(ByVal context As HttpApplication) Implements IHttpModule.Init
        AddHandler context.BeginRequest, AddressOf context_BeginRequest
    End Sub

    Private Sub context_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
        Dim application As HttpApplication = TryCast(sender, HttpApplication)
        If Not application.Request.IsSecureConnection And Not application.Request.IsLocal Then
             application.Response.Redirect(application.Request.Url.ToString().Replace(application.Request.Url.Scheme, "https"))
        End If
    End Sub

End Class

Также необходимо добавить соответствующую строку в web.config для HTTPModule:

<httpModules>
      <add type="RedirectToHttpsModule" name="RedirectToHttpsModule" />
</httpModules>
1
ответ дан 8 December 2019 в 17:27
поделиться
if(!String.Equals(Request.Url.Scheme,
                  "https",
                  StringComparison.OrdinalIgnoreCase)) { }
0
ответ дан 8 December 2019 в 17:27
поделиться

Если Вы хотите принять только безопасные соединения, создать отдельный сервис для порта 80, который только перенаправляет к HTTPS. Идеально, Вы сохранили бы запрашиваемый тракт в перенаправлении HTTP.

Если Вы просто хотите поощрить Подключения HTTPS для просмотра (и не заботьтесь о роботах, например), добавьте это к своим страницам:

<script type="text/javascript">
if(location.protocol=='http:')
  location=location.toString().replace(/^http:/,'https:');
</script>
0
ответ дан 8 December 2019 в 17:27
поделиться

Нижеследующее основано на ответе Джоша Стодоласа ( IsSecureConnection ), но использует UriBuilder для изменения схемы на https вместо замены строки. Преимущество этого подхода в том, что он не изменит все вхождения «http» в URL-адресе на «https».

if (!Request.IsSecureConnection)
{
    UriBuilder newUri = new UriBuilder(Request.Url);
    newUri.Scheme = Uri.UriSchemeHttps;
    Response.Redirect(newUri.Uri.AbsoluteUri);
}
2
ответ дан 8 December 2019 в 17:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: