Java: принятие самоподписанных сертификатов - PullRequest
1 голос
/ 12 октября 2011

Я использую следующий TrustManager для приема самозаверяющих сертификатов от локального тестового сервера в моем приложении Java:

public class CertificateAcceptor {

    private TrustManager[] createTrustManager() {
        TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {

            public X509Certificate[] getAcceptedIssuers() {
                return null;
            }

            public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
                // leave blank to trust every client
            }

            public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
                // leave blank to trust every client
            }
        }};
        return trustAllCerts;
    }

У меня есть некоторые проблемы с безопасностью, так как, насколько я знаю, это принимает только все сертификаты. Поэтому я спрашиваю себя, есть ли способ принимать только сертификаты, которые приходят с localhost на порт 9443?

1 Ответ

4 голосов
/ 12 октября 2011

Предполагая, что это ваши самозаверяющие сертификаты, а не просто какие-либо самозаверяющие сертификаты, вероятно, было бы лучше создать собственный центр сертификации, чтобы вы могли иметь действительные, подписанные сертификаты вместо созданияОбойти и потерять преимущества имеют сертификаты.

Создав свой собственный CA, вы можете подписать свои собственные сертификаты, а затем просто импортировать сертификат CA в ваше хранилище ключей Java.Тогда больше никаких проблем с самозаверяющими сертификатами.Кроме того, у вас есть дополнительное преимущество в том, что вы можете доверять сертификату (при условии, что вы хорошо позаботились о своих ключах сертификата).

Быть вашим собственным центром сертификации на самом деле гораздо проще, чем вы думаете.По крайней мере, так было для меня.

Вот ссылка с некоторыми пошаговыми инструкциями.http://sandbox.rulemaker.net/ngps/m2/howto.ca.html

...