We probably get asked about this more than anything else.
Probably your best option:
This is 20 miles south of Kailua-Kona in Honaunau, near the Place of Refuge
Take Route 11 South away from the city (Kailua-Kona) and travel 19-20 miles (if you leave the south edge of Kailua) until you approach the 104 mile marker. At highway 160 (Ke Ala o Keawe Road) make a right. You will see a narrow drive that has numerous parking spots and it looks rather rocky. Spots can be limited -- so have patience or come early.
You will also be right next to the Place of Refuge National Park, but it does require an admission fee. If you intend to go to Volcanoes National Park it is probably best to get a “season pass” that lets you back into either park an unlimited amount of times for a year.
In the vicinity is Captain Cook Monument, a kayak is very handy in this area or you could choose to go on a tour. You can see 100 feet in these waters and it is usually crystal clear.
Tours? Look up Fair Wind (about $119 the last time we checked) and our favorite Body Glove -- one advantage is you get a boat trip, all the gear is provided and often a small lunch if you go on the morning cruise.
Want something closer? Well, right downtown on Alli Drive next to the seawall there is a small beach that sits between the pier and King Kamehameha Hotel. Straight out from the beach follow the reef. One nice thing about this is that if you do get bored you can pack up and go shopping or eat at many places in the heart of downtown.
In the same area (you can continue down Alli Drive) but about 6 miles south of Kailua, is Kahaluu Beach Park. Lots of parking and restrooms and usually some local vendors selling food, tinkets and sometimes renting snorkel gear.
This is by no means all the places to snorkel, but will get you started. Check out on-line for Spencer Beach Park (north of Kailua), Pawai Bay (2 miles north of Kailua parallel to the Old Kona Airport Park.
This is again a good thing to consult your guidebook about. Or just ask other people when you meet them on the beach!