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).
Файл "%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-приложение, выдающее ошибку:
View Certificate
" и установить сертификат, нажав "Install Certificate…
" (для работы IE);Copy to File…
" и сохранить в DER-формате;%ORACLE_HOME%\jdk\jre\lib\security
и выполнить:keytool -import -alias YOUR_ALIAS -keystore ./cacerts -file CERT_FILE
Где:
YOUR_ALIAS
— имя вашего сертификата, которое будет уникально его выделять из всего списка сертификатов;CERT_FILE
— полное имя файла сертификата, который был создан в предыдущем пункте.Если всё прошло успешно, наличие вашего сертификата в общем списке сертификатов можно проверить так:
keytool -list -keystore ./cacerts
При решении проблемы, использовалась информация c http://www.java-samples.com/.