A Ty jak zwykle troche dobrze.
CA nie daja Ci klucza prywatnego - bo to by znaczylo ze ktos poza Toba ten klucz ma, co zupelnym zaprzeczeniem idei klucza prywatnego.
Ty generujesz sobie klucze, ty generujesz sobie plik (ca request czy jakos tak) z twoim kluczem publicznym i wysylasz go np do Verisign. Oni podpisuja to swoim kluczem prywatnym i masz certyfikat podpisany przez root CA. Twoj klucz prywatny siedzi tylko i wylacznie u Ciebie, podpisujesz nim kod i ten kto ten kod uruchamia widzi ze jest to kod zaufany (widzi sygnature plikow i sprawdza czy sie zgadzaja z kluczem publicznym w certyfikacie, i sprawdza czy certyfikat ma pieczatke root CA).
Jesli nie chcesz miec certyfikatu podpisanego przez root CA, to mozesz zrobic swoj (self-signed), wyslac go do klienta zeby zainstalowal go w przegladarce czy gdziekolwiek, sprawdzacie telefonicznie hasze czy sie zgadzaja (zapewnienie dla klienta ze importuje poprawny cert) i wsio.
Pierwsze slysze zeby twoj klucz prywatny lezal u kogos na serwerze. Pierwsze slysze zeby Java sie laczyla z jakims serwerem i brala klucz prywatny - to by znaczylo ze kazdy moze sie polaczyc i taki klucz wziac...
Jeszcze raz - przegladarka ma zainstalowany certyfikat Verisign jako zaufany, Ty wysylasz im podanie z kluczem publicznym, oni podpisuja to swoim prywatnym i masz certyfikat zaufany. Java Web Start / applet plugin sciaga jara, widzi ze jest podpisany, sprawdza czy podpis (kluczem prywatnym) zgadza sie z kluczem publicznym ktory jest w certyfikacie w jarze, nastepnie sprawdza czy certyfikat jest zaufany (podpisany przez jakikolwiek klucz prywatny odpowiadajacy jakiemukolwiek certyfikatowi ktory jest uznany za zaufany). To sie nazywa lancuch certyfikatow.
Nie pierdziel bzdur jak nie wiesz.