Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Apache+SSL (ubuntu10)

40K
23 апреля 2011 года
slyisarenko-ilya
1 / / 02.07.2008
Помогите настроить ssl-соединение в javaME с сервером apache(2). (UBUNTU 10)

Я делаю так:

-------------------- создание собственного CA, подпись серверного и клиентского ключа этим CA -----------------
cd /home/work/keystores

--- создаю свое CA---
openssl genrsa -des3 -out ca.key 2048
openssl req -new -x509 -days 365 -key ca.key -out ca.crt

-- создаю серверный ключ, подписываю его моим CA ---
openssl genrsa -des3 -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt

-- убираю пароли чтобы апач не запрашивал при рестарте ---
openssl rsa -in server.key -out server.key.insecure
mv server.key server.key.secure
mv server.key.insecure server.key

sudo cp server.key /etc/apache2/ssl
sudo cp server.crt /etc/apache2/ssl

--- импортирую корневой сертификат CA в хранилище ключей ---
keytool -import -trustcacerts -alias cacert -file ca.crt -keystore keystore.jks
keytool -genkey -alias my -keyalg RSA -keystore keystore.jks -keysize 2048

--- генерирую запрос на сертификацию от хранилища ключей ---
keytool -certreq -alias my -keystore keystore.jks -file my.csr

---подписываю сертификат для хранилища ключей при помощи CA
openssl x509 -req -days 365 -in my.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out my.crt

---добавляю сертификат в хранилище ---
keytool -import -trustcacerts -alias my -file my.crt -keystore keystore.jks
------------------------------------------------------------------------------------------------------------


апач стартует нормально, виртуальный хост(myhostname.com) для защищенного соединения видит, открывает

тестирую в эмуляторе

пробовал подписать мидлет сертификатом my.crt - не подключается

также пробовал способ отсюда (http://forum.vingrad.ru/topic-302814.html),
положил в корень jar my.crt,

код следующий
Код:
CertStore cs = new CertStore() {
                public X509Certificate[] getCertificates(String arg0) {
                       Logger.debug("get certificates");

                    try {
                         X509Certificate[] certs = new X509Certificate[1];
                         InputStream is = this.getClass().getResourceAsStream("/my.crt");
                         Logger.debug("inputStream: " + is);
                         byte[] buffer = new byte[is.available()];
                         is.read(buffer);
                         Logger.debug("cert length: " + buffer.length);
                         certs[0] = X509Certificate.generateCertificate(buffer, 0, buffer.length);
                         return certs;
                     } catch (Exception ex) {
                         Logger.error("can't open resource");
                      ex.printStackTrace();
                         return null;
                     }
                }
            };
            SSLStreamConnection.setTrustedCertStore(cs);
            Logger.debug("Before opening ssl connection" );
           
// вот здесь выдает эксэпшн  Certificate was issued by an unrecognized entity
            SSLStreamConnection sslscon = new SSLStreamConnection("myhostname.com", 443, connection.openInputStream(), connection.openOutputStream());

            Logger.debug("trusted certstore: " + cs.getCertificates(null));
            OutputStream outputStream = sslscon.openOutputStream();
            writer = new OutputStreamWriter(outputStream, "UTF-8");
            writer.write(data.toString());
            writer.close();
            outputStream.close();
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог