Assuming you are talking about a Domestic Cruise (beginning and ending in a US Port) and he is a US citizen.
If you are going the birth certificate route you will need both:
1) Birth certificate issued by government agency (typically the city, county or state) which will have an official stamp or seal on it. Either the original or an "official" photocopy which means it has the government agency stamp or seal on it. Hospital provided documentation will not work.
2) A Government-issued photo identification.
Alternatives (any one of these, all will require birth certificate to apply):
1) Passport: $145 takes about 2-3 months to get currently, if expedited (+$60) and should arrive in 5-7 weeks
2) Passport Card: $65 (call for the latest time to process and arrive, it's typically shorter than a passport)
3) A state issued Enhanced Driver's License (acts as a combined driver's license and passport card): currently issued only in the states of Minnesota, Michigan, New York, Washington, and Vermont. It could take as little as a few weeks to get but you'll need to check with your specific state about processing times