Добавление SSL-сертификатов в контейнер Docker linux

Java имеет пул строк, в котором Java управляет распределением памяти для объектов String. См. String Pools в Java

Когда вы проверяете (сравниваете) два объекта с помощью оператора ==, он сравнивает равенство адресов в пуле строк. Если два объекта String имеют одинаковые адреса, то он возвращает true, в противном случае false. Но если вы хотите сравнить содержимое двух объектов String, вы должны переопределить метод equals.

equals - фактически метод класса Object, но он переопределяется в класс String и дается новое определение, которое сравнивает содержимое объекта.

Example:
    stringObjectOne.equals(stringObjectTwo);

Но помните, что это относится к случаю String. Если вы хотите сравнить регистр без учета регистра, вы должны пойти для метода equalsIgnoreCase класса String.

Давайте посмотрим:

String one   = "HELLO"; 
String two   = "HELLO"; 
String three = new String("HELLO"); 
String four  = "hello"; 

one == two;   // TRUE
one == three; // FALSE
one == four;  // FALSE

one.equals(two);            // TRUE
one.equals(three);          // TRUE
one.equals(four);           // FALSE
one.equalsIgnoreCase(four); // TRUE

1
задан Tarta 13 July 2018 в 11:01
поделиться

2 ответа

Вероятно, проблема в update-ca-certificates. Команда обрабатывает только файлы с расширением .crt. Из его страницы man:

У сертификатов должно быть расширение .crt, чтобы быть включенным сертификатами update-ca.

. Просто добавьте это расширение при копировании сертификата в файл Docker:

COPY Certificates/myCertificate.cer /usr/local/share/ca-certificates/myCertificate.crt
0
ответ дан Ignacio Millán 17 August 2018 в 13:05
поделиться
  • 1
    попробовал это также ... просто изменив расширение на самом хосте непосредственно на .cry .. но, к сожалению, проблема все тот же – Tarta 13 July 2018 в 13:33

Действия:

1) Убедитесь, что расширение сертификатов: .crt

2) Откройте сертификаты Notepad ++ или аналогичные

3 ) Скопируйте сертификаты в / usr / local / share / ca-certificates /. Команда update-ca-Certific считывает сертификаты из этой папки: http://manpages.ubuntu.com/manpages/trusty/man8/update-ca-certificates.8.html

4) После этих шагов создание файла docker должно приводить к тому, что NOT больше не добавляется 0, 0 удаляется; но 1 добавлено, 0 удалено; или аналогичный, в зависимости от того, сколько сертификатов вы добавили

5) решение, возможно, еще не существует. Сертификаты зависят от иерархии других сертификатов. Я в окнах и, перейдя в диспетчер сертификатов, вижу, что мой сертификат зависит от двух более высоких (это показано в пути сертификации):

Таким образом, вам нужно обязательно поместить в / usr / local / share / ca-certificates / ВСЕ сертификаты в иерархии.

6) Тем не менее, вы можете подумать о том, чтобы передать права сертификаты, но, возможно, нет. В моем случае IdentityServer размещался в IIS, в привязках я мог видеть, что IdentityServer действительно ожидал звонков через https и двойным щелчком по привязке я мог видеть сертификат, который IdentityServer требует для принятия вызова.

0
ответ дан Tarta 17 August 2018 в 13:05
поделиться
Другие вопросы по тегам:

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