Как сделать x.509 сертификат из PEM один?

Я пытаюсь протестировать сценарий, локально, который включает загрузку файла с помощью основанной на Java программы для сервера FileZilla FTPES.

Для реальной вещи на сервере FZ существует реальный сертификат, и шаг загрузки (протестировал один), кажется, хорошо работает.

Я установил Сервер FileZilla на своем dev поле (таким образом, это протестирует загрузку от localhost до localhost). У меня нет реального сертификата для него, конечно, таким образом, я использовал кнопку "Generate new certificate..." в FZ. Это хорошо работает из интерактивной программы FTPES (как долго как я хорошо неизвестный сертификат), но из моей программы Java это бросает javax.net.ssl. SSLHandshakeException ("не могущий найти действительную сертификацию соединяют каналом к требуемой цели").

Таким образом, как я говорю Java, что этот сертификат соглашается со мной?

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

Я нашел, что Java имеет программу, названную "keytool", который, кажется, для управления этим видом вещи, но это жалуется, что файл сертификата, что сгенерированный FZ не является "x.509" файлом. Регистрация со стороны FZ сказала, что это был "закодированный PEM". У меня есть "openssl" здесь, который похож, это идеально подходит для преобразования между форматами сертификата, но я думаю, что мое понимание форматов сертификата является неправильным, потому что я не вижу ничего очевидного.

Мое знание сертификатов безопасности немного шатко, поэтому если мой заголовок является глупо неправильным, помогите путем фиксации этого.:-)

0
задан 12.01.2011, 01:21

1 ответ

PEM является просто механизмом кодирования двоичных данных в base64 представлении. Большинство x.509 сертификатов является закодированным PEM; они выглядят примерно так:

-----BEGIN CERTIFICATE-----
MIICbDCCAdWgAwIBAgIJALeUXoWyGYBYMA0GCSqGSIb3DQEBBQUAMCoxGzAZBgNV
BAMMEmh4NTA5IFRlc3QgUm9vdCBDQTELMAkGA1UEBhMCU0UwHhcNMDcxMTE1MDY1
ODU2WhcNMTcxMTEyMDY1ODU2WjAqMRswGQYDVQQDDBJoeDUwOSBUZXN0IFJvb3Qg
Q0ExCzAJBgNVBAYTAlNFMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHcvJb
yJXPhM9HHq1hU6d2Cu1fW9o1CvObirn1SNZg+pTnQgO9Lv4VjQQfltNK0aovyLJa
UdbAbsRCfH+79YY2tU76x8aXpUri0DfUv5PGscIZzW7WULaaXxBgHo1owzmhc1Qj
F9JDEurJXGFEZaDsPcEwY40RjrKDL8SXzEoEwwIDAQABo4GZMIGWMB0GA1UdDgQW
BBSM5w21xd5phXUsCKHeUxUwnKHoADBaBgNVHSMEUzBRgBSM5w21xd5phXUsCKHe
UxUwnKHoAKEupCwwKjEbMBkGA1UEAwwSaHg1MDkgVGVzdCBSb290IENBMQswCQYD
VQQGEwJTRYIJALeUXoWyGYBYMAwGA1UdEwQFMAMBAf8wCwYDVR0PBAQDAgHmMA0G
CSqGSIb3DQEBBQUAA4GBAIBa6mq1aytlbhixD6q4PROg7P1OGX6nr5CkC96CC+Xp
5UTLZEVIddkrBswNAAS0p5eEorO8xD9eT5ztZ0oYITymsO1sEIfDLks+LhdBoyF7
TX24INRwjlqsC8UlbRFoClxIMNhrMwcC3oZ4oLddV2OmA0IOG6yHXvEOQq0sTotr
-----END CERTIFICATE-----

Можно исследовать такой сертификат с помощью openssl как это:

$ openssl x509 -in filename -noout -text

Для вышеупомянутого сертификата это печатает:

Certificate:
Data:
    Version: 3 (0x2)
    Serial Number:
        b7:94:5e:85:b2:19:80:58
    Signature Algorithm: sha1WithRSAEncryption
    Issuer: CN=hx509 Test Root CA, C=SE
    Validity
        Not Before: Nov 15 06:58:56 2007 GMT
        Not After : Nov 12 06:58:56 2017 GMT
    Subject: CN=hx509 Test Root CA, C=SE
    Subject Public Key Info:
        Public Key Algorithm: rsaEncryption
        RSA Public Key: (1024 bit)
            Modulus (1024 bit):
                00:c7:72:f2:5b:c8:95:cf:84:cf:47:1e:ad:61:53:
                a7:76:0a:ed:5f:5b:da:35:0a:f3:9b:8a:b9:f5:48:
                d6:60:fa:94:e7:42:03:bd:2e:fe:15:8d:04:1f:96:
                d3:4a:d1:aa:2f:c8:b2:5a:51:d6:c0:6e:c4:42:7c:
                7f:bb:f5:86:36:b5:4e:fa:c7:c6:97:a5:4a:e2:d0:
                37:d4:bf:93:c6:b1:c2:19:cd:6e:d6:50:b6:9a:5f:
                10:60:1e:8d:68:c3:39:a1:73:54:23:17:d2:43:12:
                ea:c9:5c:61:44:65:a0:ec:3d:c1:30:63:8d:11:8e:
                b2:83:2f:c4:97:cc:4a:04:c3
            Exponent: 65537 (0x10001)

... и набор другого материала. Это - то, как можно (a) проверить, что файл содержит сертификат и (b) видеть детали сертификата.

2
ответ дан 24.11.2019, 06:46

Теги

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