Документ создан: 03.05.2011

Создание самоподписанного сертификата OHS

orapki wallet create -wallet %ORACLE_HOME%\Apache\Apache\conf\ssl.wlt\default -auto_login
orapki wallet add -wallet %ORACLE_HOME%\Apache\Apache\conf\ssl.wlt\default -dn "cn=FQDN-of-server,ou=Department,o=Organization,l=City,c=Region" -keysize 1024 -self_signed -validity <number of days>

Иногда может понадобиться запустить "Wallet Manager" открыть созданный wallet и пересохранить его на то же место.
Внимание!
Проверьте и, при необходимости, добавьте разрешения на чтение файла пользователю, от имени которого стартует сервер приложений (скорее всего это будет SYSTEM).

Настройка SSL в OHS

Файл "%ORACLE_HOME%\Apache\Apache\conf\ssl.conf" нужно подкорректировать так, чтобы было нечто похожее:

...
    <VirtualHost *:443>
        DocumentRoot "D:\product\10.1.3.1\OracleAS_1\Apache\Apache\htdocs"
        ServerName ohs.domain.ru
        ServerAdmin you@your.address
        ErrorLog "|D:\product\10.1.3.1\OracleAS_1\Apache\Apache\bin\rotatelogs logs/error_log 43200"
        TransferLog "|D:\product\10.1.3.1\OracleAS_1\Apache\Apache\bin\rotatelogs logs/access_log 43200"
        Port 443
        SSLEngine on
        SSLCipherSuite ALL:!ADH:!EXPORT56:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
        SSLWallet file:D:\product\10.1.3.1\OracleAS_1\Apache\Apache\conf\ssl.wlt\default
        SSLWalletPassword PASSWORD


        <Files ~ "\.(cgi|shtml)$">
            SSLOptions +StdEnvVars
        </Files>

        <Directory "D:\product\10.1.3.1\OracleAS_1\Apache\Apache\cgi-bin">
            SSLOptions +StdEnvVars
        </Directory>

        SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
        CustomLog D:\product\10.1.3.1\OracleAS_1\Apache\Apache\logs\ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
        RewriteEngine on
        RewriteOptions inherit
    </VirtualHost>
...


Где:
"PASSWORD" (SSLWalletPassword) - пароль заданный при создании сертификата.

Проблема

Может возникнуть такая проблема:

javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target

Для этого нужно на сервере приложений, на котором размещено java-приложение, выдающее ошибку:

  1. с помощью IE зайти по HTTPS на "проблемный" сайт;
  2. когда появится окно, нажать на "View Certificate" и установить сертификат, нажав "Install Certificate…" (для работы IE);
  3. на вкладке Details выбрать "Copy to File…" и сохранить в DER-формате;
  4. далее перейти, например, в %ORACLE_HOME%\jdk\jre\lib\security и выполнить:
    keytool -import -alias YOUR_ALIAS -keystore ./cacerts -file CERT_FILE

    Где:

    • YOUR_ALIAS — имя вашего сертификата, которое будет уникально его выделять из всего списка сертификатов;
    • CERT_FILE — полное имя файла сертификата, который был создан в предыдущем пункте.

      пароль по умолчанию - changeit

Если всё прошло успешно, наличие вашего сертификата в общем списке сертификатов можно проверить так:

keytool -list -keystore ./cacerts



При решении проблемы, использовалась информация c http://www.java-samples.com/.

 
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki Donate