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/.