1) Well, you can sign the certificate yourself) Causes some inconveniences (especially when you post the game on FB and the user enters via https), but for the first time, in principle, it will. And if things go uphill, then it will be possible to buy a normal certificate.
Authorization can be done, the search even gave some kind of JS-library . That's just ...
And how will you transfer this key to the client? By http? Well, no one bothers to wedge between the client and the server and give the client their keys. And then proxy requests to the original server with re-encryption with your key (i.e., the attacker's key). This alone kills all protection.
And how are you going to implement? Login and password to encrypt separately? Well then it will not be anything different from complex logins / passwords. So it will be necessary in some way to combine the login / password into one line and encrypt the result already.
But there is also a problem: there is a certain dictionary of logins and passwords; for these dictionaries, based on the intercepted key, you can generate ciphertexts and check sent messages based on the intercepted key login / password for the presence in this list. It will be expensive, of course, but there will always be those who wish, at least for the sake of entertainment.
If, however, cast aside doubts and decide to do it, then it may be worthwhile to take into account that 1K keys are no longer considered reliable. Mozila even from the beginning of the year redesignt certificates with such keys.
2) No one bothers. When creating software, Google Play even advises (at least advised before, now they have changed the payment method), their key (that is, one key, not two, the second one is stored) to split into several parts and scatter in different places to make it harder to unlock the key.
Perhaps you should not sew the keys, and generate them during installation? Although, wherever you put the keys - the admin will always be able to see them.
And maybe it is worth storing in the program not a login / password, but, for example, md5 from a login / password - i.e. Text is entered, is md5 applied to it and sranivatsya with the saved data?