[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

SSL-hjälp



Förmodligen är jag ovanligt korkad men jag har spenderat all möjlig tid hela jul/nyårsledigheten
på att försöka förstå hur jag ska få SSL att göra det jag vill.
Finns det någon som läser detta som kan ge mig en kick i rätt riktning så är jag mycket tacksam.

Utgångsläge:
Jag har gjort ett PHP-hack som skapar en XML-fil.
Curl ska användas för att hämta filen (eller om det finns ett bättre alternativ till Curl, bättre ur en minimalists vy).

Till saken:
Jag har lagt på upp apache-ssl och följt en anvisning på www.apache-ssl.org om hur man ska göra med certifikaten. Jag vill ha "oregistrerade" (self-signed?) certifikat och jag är intresserad av att verifiera KLIENTEN, alltså har jag googlat sönder en mus och ett tangentbord på sökbegreppet klientcertifikat på de språk jag behärskar.

Meningen är att SSL ska hindra obehöriga från att kunna ansluta sig och få XML-filen genom att man ska kunna invalidera certifikaten med antinge tidsbegränsning eller via någon typ av annullering.

Jag började med att vaniljinstallera apache-ssl och körde med "curl -k https://URL"; och det snurrade på som det skulle så jag kastade mig över certifikatsfrågan.

-------------------------------------------
certifikatsskapandet gjordes till slut så här:
openssl req -new > new.cert.csr
#Step two - remove the passphrase from the key (optional):
openssl rsa -in privkey.pem -out new.cert.key
#Step three - convert request into signed cert:
openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 365

#The Apache-SSL directives that you need to use the resulting cert are:
#SSLCertificateFile /path/to/certs/new.cert.cert
#SSLCertificateKeyFile /path/to/certs/new.cert.key

#How do I create a client certificate?
#Step one - create a CA certificate/key pair, as above.
openssl req -new > client.cert.csr
openssl rsa -in privkey.pem -out new.cert.key
openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 365

# MaRtins hobbexpyssel. Hur gör man på Rätt Sätt (tm)? Oerhört oinformativ instruktion tycker jag.
cp new.cert.cert my.CA.cert
cp new.cert.key my.CA.key
#Step two - sign the client request with the CA key:
openssl x509 -req -in client.cert.csr -out client.cert.cert -signkey my.CA.key -CA my.CA.cert -CAkey my.CA.key -CAcreateserial -days 365

# Step three - issue the file 'client.cert.cert' to the requester.
---------------------------------------------------------
MAO: jag kör nu "curl --cert client.cert.cert http://URL";
--> curl: (58) unable to set private key file: 'client.cert.cert' type PEM --> google=nada.

Jag har även provat att kopiera hem alla certifikatsfilerna och provat i formen "curl --cacert my.CA.cert --cert client.cert.cert https://URL"; och en massa olika "--cert <filnamn>" med som bäst "curl: (58) unable to set certificate file (wrong password?)" som resultat (trial and horror-varianten alltså, jag börjar bli desperat).

Finns det någon vänlig själ därute som kan ge mig en länk eller en lektion på något trevligt sätt?
Jag bjuder på glass till våren.

Hälsningar Martin



Reply to: