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

Re: SSL-hjälp



Martin Burman, jordad adress wrote:
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).

Varför ska du använda extra script utöver php?
Vill du köra ett lokalt program går det förvisso med php-kommandot virtual('cgi-bin/..'); # eller kanske vadsom:
virtual('ls -la');

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.

Jag har ingen direkt anvisning om ssl.
När jag skriver script, brukar jag hänga på någon irc-kanal (irc.debian.org lr annan openirc), om det nu bara e små vinkar man behöver.

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).


Nej jag fattar inte, o jag går inte ner i källaren i onödan.
Testa att arbeta långt in på natten o lyssna på trashmetal, det hjälper för mig.



Reply to: