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: