The ACME protocol on which Let's Encrypt is based allows for multiple challenge types to prove you control a given domain name. The ones Let's Encrypt plans to support at launch are SimpleHTTP and DVSNI.
The SimpleHTTP challenge requires you to place a specially formatted file on your webserver. The DVSNI challenge requires you to configure your webserver to respond with a specially formatted x509 certificate when a certain name is requested via SNI.
In either case, you can run the official Let's Encrypt client, which will automate the challenge process either using your already installed Apache or Nginx (with no downtime), or using a built-in webserver in the client.