Я пытаюсь добавить SSL в существующее приложение CORBA и получаю эту ошибку:
org.omg.CORBA.NO_PERMISSION: Client-side policy requires SSL/TLS, but server doesn't support it vmcid: 0x0 minor code: 0 completed: No
at org.jacorb.orb.iiop.ClientIIOPConnection.checkSSL(ClientIIOPConnection.java:535)
at org.jacorb.orb.iiop.ClientIIOPConnection.connect(ClientIIOPConnection.java:144)
at org.jacorb.orb.giop.GIOPConnection.sendMessage(GIOPConnection.java:835)
at org.jacorb.orb.giop.GIOPConnection.sendRequest(GIOPConnection.java:805)
at org.jacorb.orb.giop.ClientConnection.sendRequest(ClientConnection.java:302)
at org.jacorb.orb.giop.ClientConnection.sendRequest(ClientConnection.java:282)
at org.jacorb.orb.Delegate.invoke_internal(Delegate.java:919)
at org.jacorb.orb.Delegate.invoke(Delegate.java:868)
at org.jacorb.orb.Delegate.is_a(Delegate.java:1268)
at org.omg.CORBA.portable.ObjectImpl._is_a(ObjectImpl.java:112)
at databridge.autogen.ILoginManagerHelper.narrow(ILoginManagerHelper.java:57)
at databridge.test.Client.main(Client.java:59)
Я создал хранилища ключей для клиента и сервера и обменялся ключами между ними. Используя эту настройку, я могу заставить демо-приложение, которое появилось в загрузке JacORB, успешно работать. Единственное отличие, которое я могу сказать, состоит в том, что мой тест использует метод Tie для получения POA. Есть некоторые политики, которые входят в это, но я не могу найти никакой информации о том, какие политики нужно использовать, чтобы включить SSL, если таковые имеются. Я даже не уверен, что это проблема, поскольку демонстрация JacORB не устанавливает никаких политик на сервере или сервере. Когда я запускаю -Djavax.net.debug = ssl, я вижу, что хранилища ключей загружают доверенные сертификаты как на клиенте, так и на сервере. Я просто не уверен, на какие политики ссылаются здесь, но странно, что демонстрация работает, и тест не использует точно такие же хранилища ключей и свойства.
Я отправил список рассылки по электронной почте, но не надеюсь, что он не слишком активен. Любая помощь будет принята с благодарностью. Ниже приведены мои файлы свойств.
Реквизит сервера:
jacorb.security.support_ssl=on
jacorb.security.ssl.server.supported_options=60
jacorb.security.ssl.server.required_options=20
jacorb.ssl.socket_factory=org.jacorb.security.ssl.sun_jsse.SSLSocketFactory
jacorb.ssl.server_socket_factory=org.jacorb.security.ssl.sun_jsse.SSLServerSocketFactory
jacorb.security.keystore=dbserver.jks
jacorb.security.keystore_password=dbsslserver_pass
jacorb.security.jsse.trustees_from_ks=on
jacorb.security.jsse.log.verbosity=4
jacorb.implname=StandardImplName
реквизит клиента
jacorb.security.support_ssl=on
jacorb.security.ssl.client.supported_options=60
jacorb.security.ssl.client.required_options=20
jacorb.ssl.socket_factory=org.jacorb.security.ssl.sun_jsse.SSLSocketFactory
jacorb.security.keystore=dbclient.jks
jacorb.security.keystore_password=dbsslclient_pass
jacorb.security.jsse.trustees_from_ks=on
jacorb.security.jsse.log.verbosity=4
jacorb.implname=StandardImplName